2015-12-16 3 views
1

Все:, как обращаться с MongoDB близко в мангуста

Я довольно новыми для мангуст, прямо сейчас, я открываю MongoDB как:

db.js

var DB_URL = "mongodb://localhost/test/"; 

var mongoose = require("mongoose"); 

mongoose.connect(DB_URL); 
var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function (callback) { 
    console.log("OPEN DB..."); 
}); 

module.exports = mongoose; 

Интересно: Должен ли я что-то делать, если я завершаю приложение, используя это соединение mongoose, просто с помощью CTRL + C? Будет ли MongoDB знать, что это соединение было закрыто (или как я могу сообщить об этом)?

Это особенно полезно во время фазы DEV, которую, возможно, потребуется перезагрузить приложение.

Thanks

ответ

2

Ну вот идея, которая, на ваш взгляд, может быть полезна. Node.js получает сигналы unix. Так, например, Ctrl + C отправляет unix-сигнал (SIGINT) в приложение Node.js, которое вы запускаете в этом терминале для завершения.

Скажите, что вы хотели закрыть свое соединение с БД, прежде чем закрывать приложение node.js. Таким образом, вы можете предотвратить потерю или повреждение данных. Ну, хороший способ сделать это - переопределить сигнал завершения.

Чтобы переопределить сигнал все, что вам нужно сделать, это:

process.on('SIGINT', function(params) { 
    //Shut your db instance here. 
    //close or save other stuff. 
}); 

Таким образом, когда вы делаете CTRL + C будет закрывать вещи грациозно без риска повреждения.

+0

Спасибо, я попробую. Возникает один вопрос: где я должен поместить эту часть в файл app.js (файл основного обработчика) или db.js? – Kuan

+0

Добавьте его в app.js. – flappyS

+0

Спасибо, теперь я получаю это – Kuan

Смежные вопросы