用mongo+node+npm建站,服务器端用什么能代替命令行一直开启mongo和npm
发布于 8 年前 作者 1958MJ 4930 次浏览 来自 问答

把mongo作为系统服务开启可以吗,npm必须用命令行一直开着吗,windows系统server2012

17 回复

使用screen保持后台运行

@snowjames007 是windows的

npm并不是一个需要开着运行的程序啊, 它只是一个包管理工具啊,不明白你的意思 如果是mongod的话,Linux可以用&,Windows应该有类似的命令啊

@FrontMage 应用是用NPM托管的,要执行npm start,才能访问如果退出了CMD就不行了。mongo也要一直开着CMD,我现在是一定要同时开着两个CMD才能让网站正常访问,我是初学,现在只了解个表面,不知道有什么办法能代替CMD来运行这两个东西

npm start ? 看下package.json里的 scripts.start 具体命令是什么。 我线上是用pm2启动node脚本的,会自动帮你后台运行。 mongodb如果通过yum安装的话,直接 service mongod start 源代码编译安装就不知道了,鄙人不用mongo,但通用的办法就是: nohup mongodb &

用forever包可以实现自动重启,守护进程,你关了命令行也没事,mongod用start /b mongod即可

npm install forever -g forever start server.js

@zstxt1989 人家是Windows server,哪有&。。。。。

@zstxt1989 mongo是用官方的.exe安装的,现在是要在cmd里用mongod --dbpath c://巴拉巴拉来打开,npm start 才能跑起来,scripts.start 指定的就是bin下边的www,用的express

@FrontMage 唔,这个试试

@FrontMage 我试了一下,forever是帮我守护着node进程,但是这好像意味着我要开着执行forever app.js之后的cmd窗口吗。。

不是有pm2吗?

@qinyang912 这个可以,请问mongo用什么来托管呢

谢谢各位,我的需求已经解决了,最终的办法是 node选择用pm2来托管,mongo用gongmod提供的功能设置为windows服务,然后从命令行启动这个服务就可以不用一直开着CMD了,nonde使用pm2来托管也不用一直开着CMD了,希望有这个需求的人看到这个帖子会有些帮助

mongod 可以用 MongoDB 自带的 --fork 选项。

mongod --fork --dbpath ~/Dev/Web/db_mongo --syslog

@coderfox 谢谢你的回答,但是我试了一下报错,你在windows上试过吗

@1958MJ 哪条命令报错?

@1958MJ 我没有 Win 环境,方便发一下错误详情么?我没有试过。

回到顶部