我是api创作的新手。我试图创建一个mongodb的入口。数据库连接迅速进行。我已经编写了以下代码,用于将数据输入到mongo DB中。
// Node Module dependencies
var express = require('express');
var router = express.Router();
// Local Module dependencies
var common = require('./common.js');
//var request = require('request');
//common.autoIncrement.initialize(common.conn);
//---------------Schema Definitions---------------------//
var userSchema = common.Schema({
_id: common.Schema.Types.ObjectId,
user_name: String,
gender: {
type: String,
enum: ['male', 'female'],
default: 'male'
},
contact: Number,
profile_pic: String,
address: String,
role: String,
dob: {
type: Date,
default: Date.now
},
collage_name: String,
course: String,
college_roll: String,
specialization: String
});
var User = common.conn.model('User', userSchema);
router.route('/')
.post(function (req, res, next) {
console.log(req.body);
var item = new User(req.body);
//========calling postModel method===============
postUser(item, function (result) {
res.send(result);
});
});
module.exports = router;
//========postModel method============//
function postUser(item, fn) {
item.save(function (err) {
if (err) console.log(err);
console.log('user:', item);
fn(item);
})
}
但问题是数据库没有得到更新,我找不到错误是什么。这是我尝试使用邮递员将一些数据放入数据库时获得的输出。
db connection established to medicoshere database
{ dob: '2016-08-21T02:37:11.969Z',
gender: 'male',
user_name: 'ria nivas' }
Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
[Error: document must have an _id before saving]
user: { user_name: 'ria nivas',
dob: Sun Aug 21 2016 08:07:11 GMT+0530 (IST),
gender: 'male' }
POST /register 200 67.420 ms - 74
但是我看到没有内容更新到我的数据库。输出的第一行是使用
记录的app.db.once('open', function () {
console.log('db connection established to medicoshere database ');
我还需要做些什么才能更新我的数据库。 感谢。
答案 0 :(得分:0)
由于您收到Mongoose: mpromise
等错误,我假设您使用的是最新版本的NodeJS,这意味着您可以使用ES2015原生Promise。因此,要摆脱MongoDB Promises错误,您只需将Mongo的承诺替换为原生承诺即可。
要执行此操作,请将以下代码行放在require('mongoose')
和mongoose.connect(MongoURI)
之间的某处:
mongoose.Promise = global.Promise;
这只是简单地用内置的promises重新分配内置的Mongo Promises库,并且应该摆脱你的错误。