【发布时间】:2016-09-10 02:24:41
【问题描述】:
我有一个连接到 Node.js Express 的 MongoDB,我有一个 API 控制器,它接受 POST 请求和 .save() 将请求正文发送到数据库。然而,即使它在控制台中正确记录了请求正文并在 .save() 方法中输入,我还是使用 mongo->db 检查了终端,但仍然没有创建任何内容。
有没有办法确定 MongoDB 是否真的在使用 MongoDB .save() 方法?还有如何检查 MongoDB 是否正确连接到服务器?
也尝试过快速日志记录:
这是服务器的设置方式:
const express = require('express'),
app = express(),
logger = require('morgan'),
config = require('./config/main'),
mongoose = require('mongoose'),
bodyParser = require('body-parser'),
router = require('./router');
mongoose.Promise = global.Promise;
mongoose.connect(config.database);
const server = app.listen(config.port);
console.log('Your server is running on port ' + config.port + '.');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(logger('dev'));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:8080");
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Control-Allow-Credentials");
res.header("Access-Control-Allow-Credentials", "true");
next();
})
router(app);
以及服务器的配置:
module.exports = {
'database': 'mongodb://localhost/testdatabase',
'port': process.env.PORT || 3000,
'secret': 'secretsecret',
}
编辑 2
我在控制器中的 .save:
user.save(function(err, user) {
if(err) { return next(err); }
res.status(201).json({
user: user
})
})
编辑 3
尝试使用mongoose.set('debug', true); 记录并得到以下结果:
【问题讨论】:
-
@MilosLulic 抱歉,但似乎无法辨别我在寻找什么。你能帮忙吗
-
如果使用
mongoose,只需检查save()是否完成:mydoc.save().then(function(d){console.log('SAVED',d);}) -
@S.D.我用 .save 更新了原始帖子。
mydoc.save().then(function(d){console.log('SAVED',d);})应该去哪里? -
@JoKo 你用的是什么IDE?如果你使用vscode之类的东西,那么你可以简单地在回调函数中放置一个断点并调试代码。
标签: node.js mongodb express mongoose