Я новичок в создании api. Я пытаюсь создать запись в mongodb. Соединения с базой данных выполняются оперативно. Я написал код для ввода данных в базу данных mongo.Не удается добавить модель в базу данных монго.
// 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
, но я не вижу содержимое не обновляется моей db.The первой линии выхода заготовленная с помощью
app.db.once('open', function() {
console.log('db connection established to medicoshere database ');
Есть ли что-нибудь еще мне нужно сделать, чтобы обновить свою базу данных. Спасибо.
Я думаю, вам не нужно объявлять _id в вашей модели. Если вы добавите его, вы должны создать его самостоятельно. проверьте это: http://stackoverflow.com/questions/25345274/mongoose-data-saving-without-id – kakashi
Спасибо, что это сработало ..... У меня есть еще один вопрос .... Как избежать этого предупреждения .. Mongoose: mpromise (библиотека обещаний по умолчанию для mongoose) устарела, вместо этого добавьте свою собственную библиотеку обещаний: http://mongoosejs.com/docs/promises.html –
Вы можете использовать то, что упоминает @Aron. 'mongoose.Promise = global.Promise' достаточно. – kakashi