你可以考慮開始subprocess
所以讓節點運行。 mongo作爲外部程序。通過這種方式,您可以爲符合該條件的任何用戶創建一個新的mongodb實例。您可以使用例如節點"child process"
庫,通過寫那裏已經由Larry Turtis或這裏mongodb - multiple instances規定的控制檯命令使用spawn
功能爲「重生」的新數據庫實例。它看起來是這樣的,啓動的實例:
const spawn = require('child_process').spawn;
const pipe = spawn('mongod', ['--dbpath=<LOCATION>', '--port', '<PORT>'])
可以通過管道控制檯輸出到與此節點:
pipe.stdout.on('data', function (data) {
printback(data.toString('utf8'));
});
pipe.stderr.on('data', (data) => {
printback(data.toString('utf8'));
});
pipe.on('close', (code) => {
callback('Process exited with code: '+ code);
});
並通過保持管參考,然後做這個殺死運行實例的MongoDB :
static end_pipe(pipe) {
pipe.kill('SIGINT');
}
數據庫在邏輯上是一個單獨的應用程序,它實際上是很好的單獨的節點應用和MongoDB的應用程序,讓他們「鬆散」耦合。這不是一個選項創建一個新的mongo數據庫服務器這樣的用戶沒有配置文件被指定?你不需要實現mongo db應用程序已經實現的更好的東西。 – levilime
是的,我同意。根據需求安裝和創建新的mongodb服務器和數據集有多困難,幾乎沒有用戶輸入?只需將配置中的標誌置於自定義數據庫中,如果它不存在,則創建一個新的服務器。由於 –
嘿尼古拉一世制定基於在評論你的要求的答案。祝你好運! – levilime