mongodb插入错误没有在保存功能中给出任何响应

时间:2018-04-16 08:40:31

标签: mongodb express mongoose

我试图将一些数据保存到mongodb。在我的控制器中,当我尝试保存数据时,它不是 给我任何 控制器日志功能中的响应。在save方法控制台之后,它会给出响应。

顺便说一句,我已准备好数据库并运行正常。

server.js

MongoClient.connect('mongodb://localhost:27017/notification', function (err, db) {
  if (err) throw err;
  console.log("database running")
})

app.post('/users/push-token', controller.saveToken)

controller.js

var mongoose = require("mongoose");

var Token = require('../model/token');

exports.saveToken = (req, res) => {


    var tokenData = req.body.token.value;
    var userData = req.body.user.username;

    console.log("save token------------->", tokenData)
    console.log("save token------------->", userData)

    console.log(Token)

    /// to this point everything ok . console ok. but 


    var query = new Token({
        token: tokenData,
        user: userData,
    }).save((err, result) => {
        if (err)
            res.send('Error');
        else
            console.log("token saved");
            res.send(result);
    })

    /// this also print in console

    console.log("save token-------------oooooooooooooooo>")

}

model.js

var mongoose =  require('mongoose');

var Schema = mongoose.Schema;

var SchemaOption = {
    timestamps: true,
    toJSON: {
        virtuals: true
    }
}

var tokenSchema = new Schema({
    token : String,
    user: String,
} , SchemaOption);

var Token = mongoose.model("token", tokenSchema);

module.exports = Token;

1 个答案:

答案 0 :(得分:0)

在您的示例中,您使用本机驱动程序从MongoClient连接到数据库。 Mongoose本身不会对这种联系有所了解。

默认情况下,mongoose Models将缓冲要发送到db的操作,直到建立连接(在mongoose内)。 check the faq here

而不是MongoClient.connect(..)使用mongoose.connect(..)

Mongoose connection docs are here.