我不知道为什么这段代码会插入NULL。
发送帖子请求后,我收到(来自index.js中的res.json(req.body))空的“{}”
我使用的是NodeJs,Express 4和MongoDB。
帖子中的名称属性与玉石中的名称属性相同 模板。我在同一个.jade中有两个表单,但显然有不同的名称。
这不是所有代码,我只是把最重要的和与问题相关的内容
App.js
var express = require('express');
var bodyParser = require('body-parser');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/registredUsers');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/', routes);
app.use('/users', users);
module.exports = app;
index.js
var express = require('express');
var bodyParser = require('body-parser');
router.post('/adduser', function(req, res) {
var db = req.db;
var userName = req.body.username;
var userEmail = req.body.useremail;
var userPassword = req.body.userpassword;
var collection = db.get('usercollection');
collection.insert({
username : userName,
email : userEmail,
password : userPassword
}, function (err, doc) {
if (err) {
res.send("There was a problem adding the information to the database.");
}
else {
res.json(req.body);
}
});
});
module.exports = router;
答案 0 :(得分:0)
你有没有尝试过
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/registredUsers');
在index.js的顶部,从路线中删除var db = req.db
。
此外,您可以在回复中从回调中返回新创建的文档。
您的index.js
文件现在看起来像这样。
<强> index.js 强>
var express = require('express');
var bodyParser = require('body-parser');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/registredUsers');
router.post('/adduser', function(req, res) {
var userName = req.body.username;
var userEmail = req.body.useremail;
var userPassword = req.body.userpassword;
var collection = db.get('usercollection');
collection.insert({
username : userName,
email : userEmail,
password : userPassword
}, function (err, doc) {
if (err) {
res.send("There was a problem adding the information to the database.");
}
else {
res.json(req.body); // <- here you could return the new object instead.
// res.json(doc);
}
});
});
module.exports = router;
修改强>
为了协助OP,我提出了以下建议:
硬编码var userName = 'test'
并在res.json(doc)
中返回创建的文档,以测试数据库是否正在更新。