你可以考虑开始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