2014-11-16 7 views
1

방금 ​​Node.js를 배우기 시작했습니다.이 코드는 제가 작성한 코드입니다. 는/모듈, 나는 db.js몽구스 연결을 닫을 때

var mongoose = require('mongoose'); 
var db = mongoose.connection; 
db.on('error',console.error); 
db.once('open',function(){ 

}); 
mongoose.connect('mongodb://localhost:27017/test'); 
//If the Node process ends, close the Mongoose connection 

process.on('SIGINT', function() { 
    mongoose.connection.close(function() { 
    console.log('Mongoose default connection disconnected through app termination'); 
    process.exit(0); 
    }); 
}); 

exports.db = mongoose; 

및 모듈의 user.js app.js에서 다음

var mongoose = require('./db').db; 

var userSchema = mongoose.Schema({ 
    name: "String", 
    email: "String", 
    password: "String" 
}); 
exports.User = mongoose.model("User",userSchema); 

var User = require('./module/user').User; 
var user001 = new User({ 
    name:"user001", 
    email:"[email protected]", 
    password:"password001" 
}); 

user001.save(function(err,result){ 
    if(err) return console.error(err); 
    console.dir(result); 
}); 

내가 app.js 실행 , 저장 후, 프로세스가 종료되지 않습니다, 나는 그것이 몽구스가 아직 연결되어 있기 때문에 그것을 알 수 있습니다. 내 질문은 어떻게 자동으로 종료 할 때 내가 그것을 닫을 수 있습니까? (나는 그것을 닫기 위해 mongose.connect.close()를 사용해야 만한다는 것을 알고 있지만 코드에 어디에 넣어야합니까?)

+0

당신에 대해 무엇 과정을 말을하는거야? 당신의'save' 메쏘드가 반환 되더라도 서버는 여전히 실행 중입니다. – Rohit

+0

Rohit, 내가 말한 것은 노드 app.js를 실행할 때 저장 후 결과를 보여 주지만 그 후에는 앱이 종료되지 않는다는 것입니다. 앱을 종료하려면 Ctrl + C를 눌러야합니다. 이것은 node.js에 대한 올바른 행동이며 앱을 수동으로 종료해야합니까? – user454232

+0

어떻게'save' 메소드를 호출할까요? 난 당신이 어떤 종류의 HTTP 서버 응용 프로그램을 시작했다고 가정합니다, 이것은 올바른 동작입니다. – Rohit

답변

0

사용자 모델을 저장할 때 당신이 무엇을 의미하는지 확신 할 수 없습니다. Mongo DB와의 연결을 끊어야합니다. 위의 코드에서는 모델이 저장 될 때 프로세스가 종료되지 않으므로 결과를 로깅하는 것입니다.

'SIGINT'이벤트의 리스너는 CTRL-C 명령을 입력하여 터미널에서 Node 프로세스를 종료 한 후에 연결을 닫을 수 있어야합니다.

내가 응용 프로그램을 작성할 때 항상하는 일은 두 개 이상의 청취자를 추가하는 것입니다.

process.once('SIGUSR2', function() { 
 
\t shutdown(process.exit); 
 
}); 
 

 
process.on('SIGINT', function() { 
 
\t shutdown(process.exit); 
 
}); 
 

 
process.on('SIGTERM', function() { 
 
\t shutdown(process.exit); \t 
 
}); 
 

 
process.on('exit', function() { 
 
\t shutdown(); 
 
}); 
 

 
function shutdown(callback) { 
 
    // shutdown connections 
 
    callback && callback(); 
 
}

관련 문제