我将保持简短。我已经在Linux服务器上部署了安装程序。
如果我在命令行上运行"dpd",它会正确启动,连接到数据库(位于/data/db)。它显示了我的数据,并完全按照我的期望运行。
我已经为PM2创建了一个启动js文件。
推荐的部署文档行是:
var server = deployd({
port: process.env.PORT || 5000,
env: 'production',
db: {
host: 'my.production.mongo.host',
port: 27105,
name: 'my-db',
credentials: {
username: 'username',
password: 'password'
}
}
});
我不知道这些信息,因为我一直在使用默认值。我希望用这一行来代替:
var server = deployd();
当PM2重启时,这实际上启动正确部署,但不连接到MongoDB。有人知道我应该在里面放什么信息吗或者至少我应该怎么找到它?我尝试了一些变化,如主机:'localhost',端口:27105,名称:'db',没有凭据,但我似乎无法让它工作。是否需要输入默认凭据?
编辑:默认值是…
{
port: 2403,
db: {port: 27017, host: '127.0.0.1', name: 'deployd'}
}
使用时不会中断,但仍然不连接到MongoDB,导致我认为这不是凭据的问题。
为了解决这个问题,我用两个命令创建了一个bash脚本:
cd /my/path;
dpd -e "production";
然后我将其添加到PM2中。这是一个变通办法,不是真正的解决方案,但我想它可以。
为了方便,dpd
命令为您处理启动mongodb
实例。然而,这应该只用于开发和快速原型。
对于生产目的,最好是通过mongod --dbpath <path> --fork
或service mongodb start
单独启动mongodb作为服务,并使用自己的启动脚本连接到它。