【发布时间】:2019-05-25 06:59:23
【问题描述】:
我有一些代码使用 database:Assignment 和 Collection:todolist 中的一些数据,它们应该与 MongoDB 交互并添加、删除或列出集合中的 JSON。
为了理解问题,我必须在解释之前显示代码。
这是模型的代码:
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var TaskSchema = new Schema({
id: {
type: String,
unique: true
},
desc: {
type: String
}
});
module.exports = mongoose.model('Task', TaskSchema);
这是控制器的代码:
'use strict';
var mongoose = require('mongoose'),
Task = mongoose.model('Task');
exports.list_all_tasks = function(req, res) {
console.log("listing should commence");
Task.find({}, function(err, task) {
if (err)
res.send(err);
return;
res.json(task);
});
};
exports.create_a_task = function(req, res) {
var new_task = new Task(req.body);
new_task.save(function(err, task) {
if (err)
res.send(err);
return;
res.json(task);
});
};
exports.delete_a_task = function(req, res) {
Task.deleteOne({
_id: req.params.taskId
}, function(err, task) {
if (err)
res.send(err);
return;
res.json({n: task.n, ok: task.ok});
});
};
这里是路线的代码:
'use strict';
module.exports = function(app) {
var todoList = require('./controller');
// todoList Routes
app.route('/tasks')
.get(todoList.list_all_tasks)
.post(todoList.create_a_task);
app.route('/tasks/:taskId')
.delete(todoList.delete_a_task);
};
Server.js 文件:
const express = require('express');
const app = express();
const port = 3000;
var mongoose = require('mongoose');
Task = require('./api/model'); //created model loading here
bodyParser = require('body-parser');
mongoose.Promise = global.Promise;
const controller = require('./api/controller');
// mongoose instance connection url connection
//P.S The username and password have been taken off this security and privacy reasons
mongoose.connect('mongodb+srv://userName:password@server-4tjvi.mongodb.net/Assignment?retryWrites=true', { useNewUrlParser: true });
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var routes = require('./api/routes'); //importing route
routes(app); //register the route
app.listen(port);
console.log('Welcome to Just Do It, your Node.js application for all your To Do List needs.');
console.log('todo list API server has started on: port ' + port);
好的,我遇到的问题是,当我在 Postman 中输入 localhost:3000/tasks 时,它说它正在加载很长时间,然后它说它无法得到响应。我想要它做的是将集合中的所有任务(JSON)列出到邮递员上。
我已经设置了 MongoDB,我也下载了所有需要的东西; mongoose、nodemon、Mongodb等
以及如何将节点应用程序中的内容上传到数据库集合。
【问题讨论】:
标签: javascript node.js mongodb mongoose