我希望我的应用程序服务器(Hapi / Express)在继续使用server.start()之前启动mongodb进程。执行此操作的一种好方法是通过Promises,以便可以在.then中捕获mongod返回代码并检查启动成功/失败。
我发布了一个类似的问题@ Nodejs exec mongodb command in Bluebird Promise,这促使我在这里问这个问题。
答案 0 :(得分:2)
您似乎不了解流程的基础知识。
以便可以在.then
中捕获mongod返回码
def find_all_by(*args)
where(*args).load
rescue RangeError
none
end
在退出之前不会返回任何代码(由于某种原因,它被称为“退出代码”)。我假设你想让你的mongodb运行,所以这意味着你没有代码。
从应用程序启动数据库服务器绝对是错误的方法。数据库和应用程序应该单独启动(由OS'启动管理器或其他)。如果从软件包安装mongodb,则应该为您处理自动启动(通过安装正确的init脚本)。
应用程序应该只知道连接字符串(如果它无法通过此字符串连接到数据库,则显示一些非常错误的消息)。