我正在努力让节点将帖子请求保存到我的MongoDB,我没有收到任何错误,但数据库中没有存储任何内容。
modules.js
var mongoose = require ( 'mongoose' ),
Schema = mongoose.Schema,
modulesSchema = new Schema (
{
ModuleID: Number,
ModuleName: String,
ModuleLeader: String
}, { _id: false }
);
module.exports = mongoose.model ( 'Module', modulesSchema );
server.js
var express = require ( 'express' ),
app = express (),
bodyParser = require ( 'body-parser' ),
jwt = require ( 'jsonwebtoken' ),
mongoose = require ( 'mongoose' ),
mongoUri = 'mongodb://feedbacker:feedbacker@ds011472.mlab.com:11472/feedbacker';
secretKey = 'f33db3ck4r';
// database in the cloud
mongoose.connect (
mongoUri, function ( error )
{
if ( error )
{
console.error ( 'Mongoose Error! Error: ', error );
}
}
);
// bodyparser to read and post json data
app.use ( bodyParser.urlencoded ( { extended: true } ) );
app.use ( bodyParser.json () );
// load models
var User = require ( './models/user' ),
Student = require ( './models/student' ),
Module = require ( './models/modules' );
router.route('/module').post(function(req, res) {
var module = new Module();
module.ModuleID = req.body.moduleID;
module.ModuleName = req.body.moduleName;
module.ModuleLeader = req.body.moduleLeader;
module.save(function(err) {
if (err)
return res.send(err);
res.json({ message: 'Module Created!' });
});
});
// register router
app.use ( '/api', router );
我删除了一大块server.js,因为大多数是中间件和正在进行的其他路由不会影响这一点。
我用Postman来测试这个,我没有收到res.json消息。 但如果我也改变路由:
router.route('/module').post(function(req, res) {
var module = new Module();
module.ModuleID = req.body.moduleID;
module.ModuleName = req.body.moduleName;
module.ModuleLeader = req.body.moduleLeader;
module.save(function(err) {
if (err)
res.json({ message: 'Module Created!' });
});
});
这是删除以下行:
return res.send(err);
这确实会发送回复'模块已创建!' ......所以出现这种情况的原因是什么?因为我在任何地方都没有错误,也没有任何存储。是的,我的数据库详细信息设置正确
任何有助于帮助的人。
答案 0 :(得分:0)
啊,结果是使用了_id false并没有很好地将我的模型更改为:
var mongoose = require ( 'mongoose' ),
Schema = mongoose.Schema,
modulesSchema = new Schema (
{
_id: Number,
moduleName: String,
moduleLeader: String
}
);
module.exports = mongoose.model ( 'Module', modulesSchema );
答案 1 :(得分:0)
Heyy不确定,但如果出现错误,您将返回res.json({message:' Module Created!'})
module.save(function(err) {
if (err)
res.json({ message: 'Module Created!' });
}); 所以在纠正之后尝试一次这可能是有效的...... 并尝试像这样运行,以检查你得到了什么respoonse
module.save(function(err,data) {
if (err){
console.log("Error",err)
return
}
console.log(data)
res.json({ message: 'Module Created!' });
});