我试图将一些数据保存到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;
答案 0 :(得分:0)
在您的示例中,您使用本机驱动程序从MongoClient连接到数据库。 Mongoose本身不会对这种联系有所了解。
默认情况下,mongoose Models将缓冲要发送到db的操作,直到建立连接(在mongoose内)。 check the faq here
而不是MongoClient.connect(..)
使用mongoose.connect(..)