parent
c4b7c5e7c1
commit
192dd6df91
@ -0,0 +1,194 @@
|
||||
{
|
||||
"name": "mongodb-test",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@types/node": {
|
||||
"version": "16.10.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz",
|
||||
"integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ=="
|
||||
},
|
||||
"@types/webidl-conversions": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
|
||||
"integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
|
||||
},
|
||||
"@types/whatwg-url": {
|
||||
"version": "8.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
|
||||
"integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/webidl-conversions": "*"
|
||||
}
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||
},
|
||||
"bson": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/bson/-/bson-4.5.3.tgz",
|
||||
"integrity": "sha512-qVX7LX79Mtj7B3NPLzCfBiCP6RAsjiV8N63DjlaVVpZW+PFoDTxQ4SeDbSpcqgE6mXksM5CAwZnXxxxn/XwC0g==",
|
||||
"requires": {
|
||||
"buffer": "^5.6.0"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"requires": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
|
||||
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"denque": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
|
||||
"integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
|
||||
},
|
||||
"ieee754": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
|
||||
},
|
||||
"kareem": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz",
|
||||
"integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ=="
|
||||
},
|
||||
"memory-pager": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
|
||||
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
|
||||
"optional": true
|
||||
},
|
||||
"mongodb": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.1.2.tgz",
|
||||
"integrity": "sha512-pHCKDoOy1h6mVurziJmXmTMPatYWOx8pbnyFgSgshja9Y36Q+caHUzTDY6rrIy9HCSrjnbXmx3pCtvNZHmR8xg==",
|
||||
"requires": {
|
||||
"bson": "^4.5.2",
|
||||
"denque": "^2.0.1",
|
||||
"mongodb-connection-string-url": "^2.0.0",
|
||||
"saslprep": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"mongodb-connection-string-url": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.1.0.tgz",
|
||||
"integrity": "sha512-Qf9Zw7KGiRljWvMrrUFDdVqo46KIEiDuCzvEN97rh/PcKzk2bd6n9KuzEwBwW9xo5glwx69y1mI6s+jFUD/aIQ==",
|
||||
"requires": {
|
||||
"@types/whatwg-url": "^8.2.1",
|
||||
"whatwg-url": "^9.1.0"
|
||||
}
|
||||
},
|
||||
"mongoose": {
|
||||
"version": "6.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.0.10.tgz",
|
||||
"integrity": "sha512-p/wiEDUXoQuyb/xQx8QW/YGN92ZsojJ5E/DDgMCUU0WOGxc5uhcWoZ7ijLu6Ssjq8UkwVSv+jzkYp4Wbr+NqBg==",
|
||||
"requires": {
|
||||
"bson": "^4.2.2",
|
||||
"kareem": "2.3.2",
|
||||
"mongodb": "4.1.2",
|
||||
"mpath": "0.8.4",
|
||||
"mquery": "4.0.0",
|
||||
"ms": "2.1.2",
|
||||
"regexp-clone": "1.0.0",
|
||||
"sift": "13.5.2",
|
||||
"sliced": "1.0.1"
|
||||
}
|
||||
},
|
||||
"mpath": {
|
||||
"version": "0.8.4",
|
||||
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz",
|
||||
"integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g=="
|
||||
},
|
||||
"mquery": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mquery/-/mquery-4.0.0.tgz",
|
||||
"integrity": "sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==",
|
||||
"requires": {
|
||||
"debug": "4.x",
|
||||
"regexp-clone": "^1.0.0",
|
||||
"sliced": "1.0.1"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||
},
|
||||
"regexp-clone": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
|
||||
"integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
|
||||
},
|
||||
"saslprep": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
|
||||
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"sparse-bitfield": "^3.0.3"
|
||||
}
|
||||
},
|
||||
"sift": {
|
||||
"version": "13.5.2",
|
||||
"resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz",
|
||||
"integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA=="
|
||||
},
|
||||
"sliced": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
|
||||
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
|
||||
},
|
||||
"sparse-bitfield": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
|
||||
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"memory-pager": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"tr46": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
|
||||
"integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
|
||||
"requires": {
|
||||
"punycode": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"webidl-conversions": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
|
||||
"integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-9.1.0.tgz",
|
||||
"integrity": "sha512-CQ0UcrPHyomtlOCot1TL77WyMIm/bCwrJ2D6AOKGwEczU9EpyoqAokfqrf/MioU9kHcMsmJZcg1egXix2KYEsA==",
|
||||
"requires": {
|
||||
"tr46": "^2.1.0",
|
||||
"webidl-conversions": "^6.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "mongodb-test",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"mongoose": "^6.0.10"
|
||||
}
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
// https://mongoosejs.com/docs/connections.html
|
||||
|
||||
const mongoose = require("mongoose");
|
||||
mongoose.Promise = global.Promise;
|
||||
mongoose.connect(
|
||||
'mongodb://localhost:27017/dbtodo?readPreference=primary&appname=TodoListMongo&directConnection=true&ssl=false',
|
||||
{
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true
|
||||
}
|
||||
).then
|
||||
(
|
||||
() =>
|
||||
{
|
||||
console.log("connected succesfully");
|
||||
},
|
||||
err =>
|
||||
{
|
||||
console.log("connection failed");
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
const Schema = mongoose.Schema;
|
||||
var TaskSchema = new Schema({
|
||||
name: {
|
||||
type:String,
|
||||
required: 'name is required'
|
||||
}
|
||||
});
|
||||
task = mongoose.model('task',TaskSchema);
|
||||
|
||||
const http = require ('http'); // to create server
|
||||
const url = require('url'); // to parse url
|
||||
const { Console } = require("console");
|
||||
const BASIC_API_PORT = 3998;
|
||||
|
||||
const app = http.createServer(
|
||||
async (req, res) => {
|
||||
const parsedURL = url.parse(req.url, true);
|
||||
if (req.method === 'GET' && parsedURL.pathname.startsWith('/api/tasks'))
|
||||
{
|
||||
task.find({}, function(err, tasks) {
|
||||
if(err)
|
||||
{
|
||||
res.statusCode = 400;
|
||||
res.end(err);
|
||||
}
|
||||
else
|
||||
{
|
||||
res.statusCode = 200;
|
||||
res.end(JSON.stringify(tasks));
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
/*
|
||||
else if (methode : DELETE route : /api/del param : id )
|
||||
{
|
||||
fonction remove prend en paramètre _id qui est l'id du document à effacer
|
||||
}
|
||||
*/
|
||||
else if (req.method === 'DELETE' && parsedURL.pathname.startsWith('/api/del'))
|
||||
{
|
||||
if(!parsedURL.query.id)
|
||||
{
|
||||
res.statusCode = 400;
|
||||
res.end("missing required argument id");
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log("Received :" + parsedURL.query.id);
|
||||
|
||||
task.remove({ _id : parsedURL.query.id }, function (err,task) {
|
||||
if(err)
|
||||
{
|
||||
res.statusCode = 400;
|
||||
res.end(err);
|
||||
}
|
||||
else
|
||||
{
|
||||
res.statusCode = 200;
|
||||
res.end('task '+parsedURL.query.id+' deleted.');
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (req.method === 'POST' && parsedURL.pathname.startsWith('/api/task'))
|
||||
{
|
||||
if(!parsedURL.query.name)
|
||||
{
|
||||
res.statusCode = 400;
|
||||
res.end("missing required argument name");
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log("Received :" + parsedURL.query.name);
|
||||
var new_task = new task(parsedURL.query);
|
||||
new_task.save(function(err,task){
|
||||
if(err)
|
||||
{
|
||||
res.statusCode = 400;
|
||||
res.end(err);
|
||||
}
|
||||
else
|
||||
{
|
||||
res.statusCode = 200;
|
||||
res.end(JSON.stringify(task));
|
||||
}
|
||||
|
||||
});
|
||||
console.log(new_task);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
res.statusCode = 400;
|
||||
res.end("mongoose API Endpoint Not Supported");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
app.listen(BASIC_API_PORT);
|
||||
|
||||
|
||||
console.log('server mongoose test started');
|
Loading…
Reference in new issue