MongoDB-mongoose不响应REST API

我对MongoDB-mongoose有一个奇怪的问题,它不响应REST API mongoose版本 – 4.11.3 Mongo DB shell版本3.4.6我的电脑上的所有东西都是本地的

连接到Mongo DB如下:

server.js

var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { console.log("Connected correctly to db"); }); ... var app = express(); var tasks = require('./server/routes/taskRouter'); app.use('/api/tasks',tasks); 

日志“正确连接到数据库”被打印。

架构(tasks.js)

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var taskSchema = new Schema({ name: String }); var Task = mongoose.model('Task', taskSchema); module.exports = Task; 

最后是taskRouter.js

 var express = require('express'); var bodyParser = require('body-parser'); var Task = require('../models/tasks'); var taskRouter = express.Router(); taskRouter.use(bodyParser.json()); taskRouter.route('/') .get(function (req, res, next) { Task.find({}, function (err, task) { console.log("result"+task) if (err) throw err; res.json(task); }); }) .post(function (req, res, next) { var task = new Tasks(); console.log ('the name is '+req.body.name); task.name = req.body.name; task.save(function(err){ console.log ("arrived there"); if (err) res.send(err); res.json({message: "Task created"}); }); }) 

正如你看到的,一切都在书本上。 但是我从来没有从task.save和Task.find获取任何日志

我的“摩根”logging器只显示以下日志:

 GET /api/tasks - - ms - - POST /api/tasks - - ms - - 

邮差卡在“加载”,直到收到超时:无法得到任何回应。 对MongoDB shell中的任务集合的所有简单操作都没有任何问题。 mongoose会怎么样? 提前致谢。

尝试使用以下代码创build一个单独的文件config.js:

 module.exports = { 'database': 'mongodb://localhost:27017/yourdatabasename' } 

server.js:

 ... var config = require('./config'); // get our config file ... var mongoose = require('mongoose'); ... mongoose.connect(config.database, { useMongoClient: true }); mongoose.connection.on('open', function(err, doc){ console.log("connection established"); var app = express(); var tasks = require('./server/routes/taskRouter'); app.use('/api/tasks',tasks); db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { console.log("Connected correctly to db"); });