2016-08-21 3 views
0

저는 API 생성에 초보자입니다. Ion이 mongodb에 대한 항목을 만들려고합니다. 데이터베이스 연결은 즉시 이루어집니다. 나는 몽고 DB에 데이터를 입력하기 위해 아래의 코드를 작성했다.mongo 데이터베이스에 모델을 추가합니다.

하지만 데이터베이스가 업데이트되지 않고 오류가 무엇인지 찾을 수 없습니다. 이것은 내가 우편 배달부를 사용하여 데이터베이스에 데이터를 넣으려고하는 동안 얻는 출력입니다.

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 '); 

를 사용하여 기록됩니다 어떤 내용이 출력의 내 db.The 첫 번째 줄에 업데이트되지 않습니다를 참조하십시오. 감사합니다. .

+1

모델에서 _id를 선언 할 필요가 없다고 생각합니다. 추가하는 경우 직접 생성해야합니다. 체크 아웃 : http://stackoverflow.com/questions/25345274/mongoose-data-saving-without-id – kakashi

+0

고마워요 ..... 나는 한 가지 더 질문 ....이 경고를 피하기 위해 어떻게 .. Mongoose : mpromise (mongoose의 기본 약속 라이브러리)는 더 이상 사용되지 않습니다. 대신 자신의 약속 라이브러리를 플러그인하십시오. http://mongoosejs.com/docs/promises.html –

+1

@Aron이 언급하는 방식을 사용할 수 있습니다. 'mongoose.Promise = global.Promise'이면 충분하다. – kakashi

답변

0

Mongoose: mpromise 등의 오류가 발생했기 때문에 최신 NodeJS 버전을 사용하고 있다고 가정합니다. 즉, ES2015 기본 약속을 사용할 수 있습니다. 따라서 MongoDB Promises 오류를 없애기 위해서는 Mongo의 약속을 기본 약속으로 대체하면됩니다.

는이를 위해이 require('mongoose')mongoose.connect(MongoURI) 당신의 사이 어딘가에 코드의 다음 줄을 넣어 :

mongoose.Promise = global.Promise; 

이 단순히 기본 약속과 몽고에 약속 내장 된 라이브러리를 재 할당하고 오류를 제거해야한다.