Mongoose没有插入数据

时间:2016-12-26 05:28:37

标签: node.js mongodb express

我正在向我发的API发送帖子请求。 post请求发送一些数据存储在我的本地数据库中。

var Loc = require('../models/locationSchema');
module.exports.locationsCreate = function(req, res){
console.log(req.body.name);
console.log(req.body.address);


Loc.create({
    name: req.body.name,
    address: req.body.address,
}, function(err, data){
    console.log('inside callback!');
    if (err){
        res.send('error');
    } else {
        res.send('success');
    }
});
console.log('reached end of function');
};

这是架构,

var locationSchema = new mongoose.Schema({
    name: {type: String, required: true},
    address: {type: String, required: true},
});

module.exports = mongoose.model('Location', locationSchema);

猫鼬正确连接。我的路由器正在正确处理发布请求。

我正在使用邮递员发送一个邮件请求,其中包含姓名和地址。没有任何事情发生,几秒钟后,我得到'无法得到答复'。没有任何东西被添加到数据库中。

控制台打印名称,地址,然后“达到功能结束”。它从不显示'内部回调'

3 个答案:

答案 0 :(得分:0)

我看到你的对象中有几个尾随逗号(对象中最后一个元素之后的逗号),尝试删除它们,因为这在JSON中是不允许的,它们会影响你的代码的执行(这里的函数)案例),
在架构中:address: {type: String, required: true}, // remove the comma at the end
并在Loc.create中:address: req.body.address, // remove the comma at the end

答案 1 :(得分:0)

您的代码看起来很完美,除非您没有包含mongoose模块。因此,您无法使用猫鼬的create方法。 包括像

这样的猫鼬模块
var mongoose = require('mongoose');

因此,您的代码应如下所示:

var Loc = require('../models/locationSchema');
var mongoose = require('mongoose');

module.exports.locationsCreate = function(req, res){
    console.log(req.body.name);
    console.log(req.body.address);


    Loc.create({
        name: req.body.name,
        address: req.body.address,
    }, function(err, data){
        console.log('inside callback!');
        if (err){
            res.send('error');
        } else {
            res.send('success');
        }
    });
    console.log('reached end of function');
};

希望它有所帮助!谢谢!

答案 2 :(得分:0)

您需要创建模型/架构的新对象。

var LocationSchema = require('../models/locationSchema');

 module.exports.locationsCreate = function(req, res){ 
 console.log(req.body.name); console.log(req.body.address);

 var Loc = new LocationSchema();  

 Loc.create({
     name: req.body.name,
     address: req.body.address, }, function(err, data){
     console.log('inside callback!');
     if (err){
         res.send('error');
     } else {
         res.send('success');
     } }); console.log('reached end of function'); };