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的
var mongoose = require('./db').db;
var userSchema = mongoose.Schema({
name: "String",
email: "String",
password: "String"
});
exports.User = mongoose.model("User",userSchema);
然後在app.js
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()來關閉它,但是我應該把它放在代碼中?)
什麼樣的過程,你在說什麼?即使你的'save'方法返回你的服務器仍然會運行。 – Rohit
Rohit,我的意思是當我運行節點app.js時,它顯示保存後的結果,但之後應用程序不會退出。我必須做一個Ctrl + C來終止應用程序。這是一個正確的行爲node.js,我必須手動終止應用程序? – user454232
你如何調用'save'方法?我假設你已經開始某種類型的http服務器應用程序,這是一個正確的行爲。 – Rohit