[MONGODB] Mongoose.js의 instance.save () 콜백 발사하지
MONGODBMongoose.js의 instance.save () 콜백 발사하지
var mongo = require('mongoose');
var connection = mongo.createConnection('mongodb://127.0.0.1/test');
connection.on("error", function(errorObject){
console.log(errorObject);
console.log('ONERROR');
});
var Schema = mongo.Schema;
var BookSchema = new Schema({ title : {type : String, index : {unique : true}}});
var BookModel = mongo.model('abook', BookSchema);
var b = new BookModel({title : 'aaaaaa'});
b.save( function(e){
if(e){
console.log('error')
}else{
console.log('no error')
}});
어느 것도 '오류'또는 '오류 없음'는 단자에 출력되지 않는다. 더 connection.on '오류'무엇 하나 화재에 보이지 않는다. 나는 MongoDB를가 실행되고 있는지 확인했다.
해결법
-
==============================
1.이 전역 몽구스 객체 모델을 추가하지만 모델의 일부가 아닌 것을 별도의 연결 mongo.createConnection ()를 개방 한 경우입니다. 모델이 아무런 관련이 없기 때문에 그것은 DB에 저장할 수 없습니다.
이 전역 몽구스 객체 모델을 추가하지만 모델의 일부가 아닌 것을 별도의 연결 mongo.createConnection ()를 개방 한 경우입니다. 모델이 아무런 관련이 없기 때문에 그것은 DB에 저장할 수 없습니다.
이 글로벌 몽구스 연결 몽고 연결하여 하나 해결된다 :
var connection = mongo.createConnection('mongodb://127.0.0.1/test'); // becomes var connection = mongo.connect('mongodb://127.0.0.1/test');
또는하여 별도의 연결에 모델을 추가 :
var BookModel = mongo.model('abook', BookSchema); // becomes var BookModel = connection.model('abook', BookSchema);
-
==============================
2.게시 된 대답은 문제가 해결되지 않습니다. 그 해결책은 나를 위해 하나없는 불행하게도, 난 그냥 내 데이터베이스를 업그레이드 할 수 없습니다. 그러나 여기에서 나는이 문제에 대한 해결책을 발견 https://github.com/Automattic/mongoose/issues/4064
게시 된 대답은 문제가 해결되지 않습니다. 그 해결책은 나를 위해 하나없는 불행하게도, 난 그냥 내 데이터베이스를 업그레이드 할 수 없습니다. 그러나 여기에서 나는이 문제에 대한 해결책을 발견 https://github.com/Automattic/mongoose/issues/4064
그냥 사용하는 대신 같이 .save의 저장 $ __. :
var b = new BookModel({title : 'aaaaaa'}); b.$__save({}, function(e){ if(e){ console.log('error') // callback will show if e exists }else{ console.log('no error') // callback will show 'no error' }});
-
==============================
3.나는 아직 거기 해요 있지만 정말 아론의 대답 등을들 수 있으며, 덕분에 그에게 나는 ... 문제를 해결로가는 길에 지금이다! 여기 내 특정 문제는 :
나는 아직 거기 해요 있지만 정말 아론의 대답 등을들 수 있으며, 덕분에 그에게 나는 ... 문제를 해결로가는 길에 지금이다! 여기 내 특정 문제는 :
내 스키마와 별도의 파일에 정의 된 모델을 갖고 싶어, 그래서 프로젝트에 프로젝트에서 다시 사용할 수 있습니다. 다음과 같이 내가 파일을 이름 W8DBItem.js을 예로 그래서 :
var mongoose = require('mongoose'); var itemSchema = new mongoose.Schema({ name: {type: String, required: true}}); module.exports = mongoose.model('W8DBItem', itemSchema);
내 프로그램 파일에서 나는이 이렇게 :
var mongoose = require('mongoose'); var W8DBItem = require('../w8/W8DBItem.js'); var dbURL ='mongodb://localhost:27017/default'; var mongoOptions = { useNewUrlParser: true, bufferCommands: false } mongoose.connect(dbURL, mongoOptions); var db = mongoose.connection; // DEAL WITH CONNECTION ERROR db.on('error', console.error.bind(console, 'connection error:')); // PREP DATA var aWeight = { name: "My Test Name" }; var newWeightItem = W8DBItem(aWeight); // CONNECTION ESTABLISHED db.once('open', function() { console.log("Here 1") // TRY TO SAVE newWeightItem.save(function (err, newWeightItem) { if (err) { console.log("Here 2"); console.log(err); } else { console.log("Here 3"); console.log(newWeightItem); } }); });
나는이 프로그램을 실행하면 나는 "여기 1"하지만 결코 "여기 2"또는 "여기 3"콘솔에서 얻을.
아론의 포스트에서 나는 W8DBItem 객체가 어떤 연결을 연관 (오픈) 것을 얻을 수 없지만, 나는 확실히 일을 해결 대해 이동하는 방법을 모르겠습니다. 나는 W8DBItem.js 파일의 DB에 연결할 수 있습니다,하지만 난 정말 개체로 서버 정보를 하드 코딩 좋아하지 않는다 - 나는 이러한 개체가 다른 파일을 사용하고 싶지, 그리고 아마도 다른 서버와.
아이디어와 제안이 많이 감사합니다!
[EDIT : 해결책 FOUND!]
대신 내 오브젝트 파일에서 내 mongoose.model 수출, 나는 단지 스키마를 수출하고있다 :
var mongoose = require('mongoose'); var itemSchema = new mongoose.Schema({name: {type: String, required: true}}); module.exports = itemSchema;
내 프로그램 파일에서 나는 다음과 같이하십시오 :
var itemSchema = require('../w8/W8DBItemSchema.js'); ... var W8DBItem = db.model('W8DBItem', itemSchema); var newWeightItem = W8DBItem(aWeight); ...
매력처럼 작동합니다. 나는이 사람을 도움이되기를 바랍니다!
from https://stackoverflow.com/questions/10156623/mongoose-js-instance-save-callback-not-firing by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게하여 MongoDB에서 인덱스 작업으로 분류 하는가? (0) | 2019.12.12 |
---|---|
[MONGODB] 유성 수집의 정렬 순서를 업데이트하지 않습니다 구독 (0) | 2019.12.12 |
[MONGODB] 어떻게 몽고의 "NOT IN"쿼리를해야합니까? (0) | 2019.12.11 |
[MONGODB] 문서의 중첩 배열에 포함 된 문서를 제거 (0) | 2019.12.11 |
[MONGODB] Node.js를 익스프레스 응답에 MongoDB를 커서에서 스트림 (0) | 2019.12.11 |