插入NULL - 节点Js // MongoDB

时间:2016-08-20 19:22:13

标签: node.js mongodb express

  • 我不知道为什么这段代码会插入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;

1 个答案:

答案 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)中返回创建的文档,以测试数据库是否正在更新。