From d0a96f4a0fd757eed252f7211717e0bac92e6400 Mon Sep 17 00:00:00 2001 From: Damien <damien.armillon@gmail.com> Date: Wed, 24 Apr 2019 18:15:01 +0200 Subject: [PATCH] =?UTF-8?q?1ere=20version=20o=C3=B9=20post=20et=20getall?= =?UTF-8?q?=20sont=20possibles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.json | 2 ++ backend/app.js | 26 ++++++++++++++++++++++++++ backend/models/modelToucan.js | 16 ++++++++++++++++ backend/models/toucan.js | 16 ---------------- backend/package.json | 1 + backend/routes/routesToucan.js | 28 ++++++++++++++++++++++++++++ backend/yarn.lock | 2 +- 7 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 backend/app.js create mode 100644 backend/models/modelToucan.js delete mode 100644 backend/models/toucan.js create mode 100644 backend/routes/routesToucan.js diff --git a/.eslintrc.json b/.eslintrc.json index 1860bf5..5518ab1 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -8,6 +8,8 @@ "ecmaVersion": 2018 }, "rules": { + "no-trailing-spaces":"error", + "no-console" : "off", "indent": [ "error", 4 diff --git a/backend/app.js b/backend/app.js new file mode 100644 index 0000000..11fe694 --- /dev/null +++ b/backend/app.js @@ -0,0 +1,26 @@ +var express = require("express"); +var bodyParser = require("body-parser"); +var mongoose = require("mongoose"); +var routesToucan = require("./routes/routesToucan"); + +var app = express(); +var dbName = "toucanDB"; +var connectionString = "mongodb://localhost:27017/" + dbName; + +mongoose.connect(connectionString, {useNewUrlParser: true}); +var db = mongoose.connection; +db.on("error", console.error.bind(console, "connection error:")); +db.once("open", function() { + console.log("on est connecté!"); +}); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({extended: true})); +app.use("/api",routesToucan); + + +app.set("port", process.env.PORT || 8000); + +var server = app.listen(app.get("port"), function() { + console.log("Express écoute sur le port " + server.address().port); +}); diff --git a/backend/models/modelToucan.js b/backend/models/modelToucan.js new file mode 100644 index 0000000..ee06256 --- /dev/null +++ b/backend/models/modelToucan.js @@ -0,0 +1,16 @@ +var mongoose = require("mongoose"); + +var Schema = mongoose.Schema; + +/** + * Indique ce que l'on doit trouver dans un toucan + */ +var toucanSchema = new Schema ({ + title: {type : String, required: true}, // Chaque toucan doit avoir un titre et une date + date: {type : Date, required: true}, +}); + +// La date doit être unique +toucanSchema.index({date:-1},{unique: true}); + +module.exports = mongoose.model("Toucan",toucanSchema); \ No newline at end of file diff --git a/backend/models/toucan.js b/backend/models/toucan.js deleted file mode 100644 index 47d3d51..0000000 --- a/backend/models/toucan.js +++ /dev/null @@ -1,16 +0,0 @@ -var mangoose = require("mongoose"); - -var Schema = mangoose.Schema; - -/** - * Indique ce que l'on doit trouver dans un toucan - */ -var toucanSchema = new Schema ({ - title: String, - date: Date, -}); - -// La date doit être unique -toucanSchema.index({date:-1},{unique: true}); - -module.exports = mangoose.model("Toucan",toucanSchema); \ No newline at end of file diff --git a/backend/package.json b/backend/package.json index fd9efcc..10d4f1a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -6,6 +6,7 @@ "author": "Damien <damien.armillon@gmail.com>", "license": "MIT", "dependencies": { + "body-parser": "^1.18.3", "express": "^4.16.4", "mongoose": "^5.5.3" } diff --git a/backend/routes/routesToucan.js b/backend/routes/routesToucan.js new file mode 100644 index 0000000..50cbeb8 --- /dev/null +++ b/backend/routes/routesToucan.js @@ -0,0 +1,28 @@ +var express = require("express"); +var Toucan = require("../models/modelToucan"); +var router = express.Router(); + +router.route("/toucans") + // Une route qui renvoie un json avec tous les toucans + .get(function(req,res) { + Toucan.find() + .sort({date:-1}) + .exec(function (err, toucans) { + if (err) { + res.send(err); + } + res.json(toucans); + }); + }) + // Une route pour créer un toucan + .post(function(req,res) { + var toucan = new Toucan(req.body); + toucan.save(function(err) { + if (err) { + res.send(err); + } + res.send({message: "Toucan ajouté !"}); + }); + }); + +module.exports = router; \ No newline at end of file diff --git a/backend/yarn.lock b/backend/yarn.lock index 9da645d..320d54b 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -27,7 +27,7 @@ bluebird@3.5.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== -body-parser@1.18.3: +body-parser@1.18.3, body-parser@^1.18.3: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= -- GitLab