Nodejs修改代码自动重新启动
NodeJs修改代码以后可以自动重新启动,省去了我们再ctr+c然后用node 的麻烦。但就在时间上来说,如果是项目已经上线正常运行,修改的地方不多,那我们自己手动还没什么问题。但是如果是在开发的过程中,每次写完代码都需要手动去停止服务然后再开启服务,那真的是相当的麻烦了。
更多关于NodeJs内容,可以参考我们的 NodeJs教程
作为一个程序员,对这种重复的事情会感到很烦的。
现在在这里我向大家介绍几种使Nodejs自动重新启动的方法,省去大家手动重启的麻烦。
forever实现NodeJs自动重启
forever是一种客户端的工具,可以使用其使NodeJs服务在后台运行。同样,也可以检测文件的改变然后自动重启NodeJs服务。
forever安装方式如下
$ npm install forever –g
运行上述命令,等待forever安装完成,然后我们就可以使用forever了。
$ forever start app.js
上面的命令就可以开启NodeJs服务了,此时NodeJs服务已经在后端运行。是不是很简单。当然,上面的命令是最基本的开启NodeJs服务。但是仅仅用运行上述命令我们是没有办法查看打印信息的。因此,如果我们需要查看打印信息可以将这些信息输出到日志文件中。其命令如下
$ forever –l /log/forever.log –o /log/out.log –e /log/error.log app.js
这样,我们再使用console.log()等打印的信息就可以在日志文件中查看到了。
最后就是实现修改NodeJs代码以后服务自动重启,要使用-w选项。
$ forever –l /log/forever.log –o /log/out.log –e /log/error.log –w app.js
这样,我们就可以达到最终的目的了。
pm2实现NodeJs自动重启
同样,和 forever 一样,pm2也是一种客户端的工具,也可以使NodeJs服务在后台运行。并且可以检测文件的改变然后自动重启NodeJs服务。
pm2安装方式如下
$ npm install pm2@latest –g
运行上述命令以后,等待pm2安装完成。
$ pm2 start app.js
开启NodeJs服务。
$ pm2 start –l /log/pm2.log –o /log/out.log –e /log/error.log app.js
将NodeJs的日志和打印的信息以及错误信息写进日志文件中,并开启NodeJs服务。
$ pm2 start –l /log/pm2.log –o /log/out.log –e /log/error.log app.js –watch
上述命令可以检测文件的改变,然后重新启动NodeJs服务。
使用是不是很简单,当然pm2的功能远不止于此。具体可以参考pm2详细教程。
下面介绍一种非常规的方式。这种方式是根据自己的开发环境自己写的。有什么不足的地方还请大家多多指正。
通过svn实现NodeJs的自动重启
在实际的开发中,我本人使用的是linux服务器。我每次在本地写完NodeJs代码以后,通过Svn部署到服务器上。当然,这需要借助svn的钩子post-commit。也就是通过这个文件来实现NodeJs重启。
对于svn同步代码到服务器上,有不清楚的可以参考《Linux服务器svn远程代码同步》这篇文章。
下面我们直接奉上shell代码
#!/bin/bash
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/www/nodejs
LOG=/data/home/auto_svn.log
$SVN update $WEB --username uname –password password
#To detect whether the node process exists
ps -A | grep node
#
#The $? is 0 if the node process exists,otherwise 1.
#
#If $? is 0,we will kill the node process.
if [ $? -eq 0 ];then
pid=`ps -A | grep node | awk '{print $1}'`
kill -9 $pid
fi
#Start the node process
nohup node /www/nodejs/index.js >> /log/nodejs.log 2>&1 &
这样我们就可以实现修改代码以后自动重启NodeJs服务了。
以上就是我要对大家介绍的三种方式。当然,这里需要说明一下。使NodeJs自动重启的方法又很多,它并不是一成不变的,我们完全可以根据自己的开发环境来选择相应的适合自己的方式。
就像一、二两种方式,那可以说是通用方式,可以用在不同的环境中。像第三种方式,如果我们是使用svn同步代码,那就没有问题。如果我们不是使用的svn同步代码呢,那它是不是就不适用了。所以说,具体使用哪种方式还要看自己的开发环境是怎样的。
那本篇就向大家介绍这几种方式,希望对大家有所帮助。
相关文章
使用 NodeJS 检查 MongoDB 中是否存在集合
发布时间:2023/04/21 浏览次数:194 分类:MongoDB
-
在本文中,我们将检查 MongoDB 数据库中是否存在一个集合,并且我们还将查看与主题相关的示例,以使主题更容易理解。 为此,我们将使用 Node.js。
NodeJS 中的日志记录
发布时间:2023/03/12 浏览次数:171 分类:Node.js
-
本教程演示如何在 NodeJS 中创建和存储日志,Logging 是记录应用程序流程和行为的过程。Logging 应该在生产模式下执行到更持久的输出流。
在不使用第三方库的情况下在 Node JS 中下载文件
发布时间:2023/03/12 浏览次数:177 分类:Node.js
-
本教程演示了如何在不使用第三方库的情况下在 Node js 中下载文件。