gpt4 book ai didi

Node.js 从应用程序内运行 MongoDB

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:08 25 4
gpt4 key购买 nike

我正在构建一个可由 NPM 使用的组件。应用程序需要连接到数据库。如果用户未在配置文件中指定数据库 uri 的详细信息,我的应用程序应从应用程序本身内部启动 mongoDB 实例。

我看过很多关于如何将 mongoDB 集成到 Node.js、express、mocha 和许多其他库中的教程,但它们都连接到已经运行的外部数据库。

mongoDB 服务器作为依赖项的一部分包含在内,因此与其他所有内容一起安装,但我在网上缺乏有关如何在应用程序启动时启动数据库的 Material 。

任何帮助将不胜感激。我怀疑这些信息就在那里,但我很难找到它:(

最佳答案

您可以考虑启动一个子进程。所以让Node作为外部程序运行mongo。这样您就可以为符合该条件的任何用户创建一个新的 mongodb 实例。例如,您可以使用 Node “子进程”库,并使用spawn函数通过在其中写入控制台命令来“生成”新的数据库实例,如Larry所述Turtis 或这里 mongodb - multiple instances 。启动实例可能如下所示:

const spawn = require('child_process').spawn;
const pipe = spawn('mongod', ['--dbpath=<LOCATION>', '--port', '<PORT>'])

您可以使用以下命令将控制台输出通过管道传输到 Node :

    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');
}

关于Node.js 从应用程序内运行 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40474946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com