导航:首页 > 编程语言 > nodejs关闭自动重启

nodejs关闭自动重启

发布时间:2025-08-25 19:34:45

『壹』 nodejs内置模块有哪些

一、Express框架

前面的章节已经介绍过了,可以使用npm来安装node.js模块。具体操作请参照以前写的nodejs概论。

Express是一个nodejs的web开源框架,用于快速的搭建web项目。其主要集成了web的http服务器的创建、静态文本管理、服务器URL地址请求处理、get和post请求处理分发、session处理等功能。

使用方法,在cmd中打开你所想创建web项目的路径。然后输入

Express appname

即可创建一个名为appname的web项目。控制台打印结果

在jada文件中是可以使用for循环和if判断语句的,可以让你体会类似JSP的<%%>和php的<php></php>在网页上输出数据的快感。

三、forever模块

nodejs作为http服务器,需要确保服务顺利进行,要注意一下两点:

1.后台服务运行,监控运行日志,以及http运行日志;

2.确保项目的正常安全运行,Node.js的启动命令node,很大程度无法满足运行需求;

Node.js的forever模块在第二点就可以起到很大的作用,同时其拥有监控文件更改、自动重启等功能。

forever模块的使用方法有两种:1.在命令行中使用

forever -l forever.log -o out.log -e err.log app.js
-l forever.log -o out.log -e err.log分别指定了forever的运行日志,脚本流水日志,脚本运行错误日志,启动后将在本文件夹下产生out.log、err.log文件。

2.在编码中require forever模块使用。

四、Socket.IO模块

Socket.IO模块主要功能是将WebSocket协议应用到所有浏览配厅器。主要用于实时的长连接多求情项目中。

例如:在线联网游戏,实时聊天、实时股票查看、二维码扫描登录掘粗等。

安装方法仍然是在cmd在中输入npm install socket.io

如何使用Socket.IO来创建一个项目。

需要分别实现服务端和客户端的逻辑:

先创建一个服务端的node.js脚本index_server.js

var app = require('http').createServer(handler)//创建服务器app
, io = require('socket.io').listen(app)//引用socket.io模块监听app
, fs = require('fs')//引用文件处理模块
app.listen(80);//指定app监听的端口,第二个参数127.0.0.1可省略

function handler (req, res) {
fs.readFile(__dirname + '/index.html', function (err, data) { if (err) {
res.writeHead(500); return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}

io.sockets.on('connection', function (socket) {
socket.emit('判卖镇news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});

其中,socket.emit()为Socket发送消息的函数,第一个参数表示发送消息的key值,第二个参数为发送消息的内容,也就是发送的数据。

Socket。on()为Socket接收消息的函数,第一个参数为接收消息的可以值,第二个参数为回调函数,其中回调函数携带的参数为接收消息所发送的数据。

接下来web前端如何使用javaScrit 来连接Socket服务器。

新建一个index_client.html

<script type="text/javascript" src="socket.js"></script>
<script type="text/javascript"> var socket = io.connect('http://localhost');//创建本地sock连接
socket.on('news',function (data) {//Socket接收news消息时执行回调函数 console.log(data);
socket.emit('my other event',{my:'data'});
});</script>

<script type="text/javascript" src="socket.js"></script>加载已经安装好的Socket.io的本地JavaScrit文件。
var socket = io.connect('http://localhost');因为端口为80,所有这里可以不端口号
socket.on('news',function (data){}//客户端接收news消息成功后,发送my other event消息到服务端,发送的消息内容为json对象{my:'data'}

接下来只需要运行服务端的index_server.js文件来启动socket服务

效果:在浏览器输入http://127.0.0.1按F12调出浏览器的控制台console即可看见打印出了一个object对象。

执行完毕后可能会报错:catnot find mole socket.io,说明你的socket.IO没有安装,或已经安装并配置为全局,但你的安装路径并没有配置到在path中,所有无法引用。
你可以选择配置path,或者安装到项目内。这里建议安装到你的项目目录下,而不是简单粗暴的配置为全局。先卸载npm uninstall socket.io 进入指定目录后安装node index_server.js

socket.io详细请参阅 http://cnodejs.org/topic/50a1fcc7637ffa4155b5a264

五、request模块

request模块为开发者提供了一种简单访问HTTP请求的方法。request还支持HTTPS的访问方法。

安装:

npm install requset

request模块基本上覆盖了所有的HTTP请求方式如GET,POST,HEAD,DEL等。但其最基本的两个方法是request.get()和request.post().

get和post的区别

get:

1.使用get向服务器发出和接收的请求会附在url之后。类似:http://www..com?id=1221&name=5555这个url中传递了两个参数,一个为id,一个为name。

2.get请求不能超过1024个字节。

post没有限制,也不会附在url上。

接下来做一个简单的实例

get实例:

首先新建一个服务器app_get.js

var http= require("http");
http.createServer(function(req,res){
res.writeHead(200,{'content-Type':'text/plain'});
res.end('Hello world '+req.method);
}).listen(1337,"127.0.0.1");

再建一个发送求情的request_get.js文件

var request=require('request');
request.get("http://127.0.0.1:1337",function(error,response,result){
console.log(result);
});

在CMD中运行app_get.js,运行成功后,再打开一个cmd(之前的cmd不要关闭),执行request_get.js文件。

执行后的结果如下

hello world
GET

可以看出,通过request.get方法访问

http://127.0.0.1:1337 返回的结果就是res.end()的参数

post实例:
和上面一样,先新建服务器app_post.js

var http= require("http"),
querystring=require('querystring');
http.createServer(function(req,res){ var postData=""; //开始异步接收客户端post的数据
req.addListener("data",function (postDataChunk) {
postData += postDataChunk;
}); //异步post数据接收完毕后执行匿名回调函数
req.addListener("end",function(){ var postStr=JSON.stringify(querystring.parse(postData));
res.writeHead(200,{'content-Type':'text/plain'});
res.end(postStr+' '+req.method);
});
}).listen(1400,"127.0.0.1");

然后再新建一个request_post.js

var request=require("request");
request.post('http://127.0.0.1:1400',{form:{'name':'ermu','book':'node.js'}},function (error,response,result) {
console.log(result);
})

像上面一样在cmd中执行后显示的结果如下:

D: odejssrc equest>node request_post.js
{"name":"ermu","book":"node.js"}
POST

request post提交了一个json对象{"name":"ermu","book":"node.js"}而服务器接通过获取该POST数据,然后返回客户端,同时将http请求方式也响应到客户端。

request post参数可以有两种传递方式。

其中,第一种是将url和form表单的数据作为json参数在request post传递。举例如下:

request.post('url':'http://127.0.0.1:1400',form:{'name':'ermu','book':'node.js'}},function (error,response,result) {
console.log(result);
})

另一种是将url和form作为两个参数,上面的实例就是使用这种方法。

六、 Formidable模块

该模块的目的是为了解决文件上传。

在原生的node.js模块中,提供了获取post数据的方法,但是并没有直接获取上传文件。

『贰』 启动node服务

ctrl+c后可以重启服务不node

1、在命令控制台按Ctrl+C,终止当前所运吵渗租行的代码

2、然后继续nodefilename.js,即可重启node.js

自动重启Node服务

NodeSupervisor原本是用于服务器上Node.js应用崩溃的时候,自动重新启动。当然它也可以喊雹监控你的项目的js文件变化,自动重启来方升兆便调试。

安装sudonpminstallsupervisor-g,或者使用sudocnpminstallsupervisor-g。

使用方法:

1、关掉之前开启的node服务。

2、然后在项目路径下使用命令:supervisoryourApp.js来开启Supervisor。它会开启node服务,并不停的检测文件变化,当JS文件内容修改后,自动重启服务,很方便。

如何用命令行开启nodejs搭建web服务器?

首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本

安装完成后可以通过命令行测试安装是否成功,输入:node-v,应该会显示当前安装node版本号。

本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npminstallxxx。

开始

下一步,新建js文件,可以命名为server.js,代码如下:

varhttp=require('http');

varurl=require('url');

varpath=require('path');

varfs=require('fs');

vardir,arg=process.argv[2]||''//命芦裂袭令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称

//比如使用命令nodeserverdebug,意思就是debug文件夹与server.js文件同级

//且你想以debug文件夹启动web服务

http.createServer(function(req,res){

varpathname=__dirname+url.parse(req.url).pathname;

[linux运维]?1、下载最新node.js二进制源码安装包(29MB),V8.2.1更新于2017年7月20日?

wget?-c?

wget是一个Linux下载文件的工具,centos自带。

wget?-c?是断点续传下载方式,后面的URL就是提供下载文件的地址

默认获取的文件地址在/root目录下,命令pwd显示当前目录源带.

??2、安装必要的编译软件?吖米yum?install?gcc?gcc-c++?yum?=?Yellow?dog?Updater,?Modified。改良黄狗更新器,centos自带智能包管理器。?中途询问,输入y:在线下载安装?d:只下载不安装?N:不下载不安装

Is?this?ok?[y/d/N]?:y

??3、解压源码tar?-zxvf?node-v8.2.1.tar.gz当前目录/root/就会多一个node-v8.2.1的文件夹-z:透过gzip的支持进行压缩/解压缩:此时文件名最好为*.tar.gz-x:解压缩的功能-v:在压缩/解压缩的过程中,将正在处理文件名显示出来

f?filename:-f后面要立刻接被处理的文件名.

??4、编译node源码包?1)进入到node源码包解压目录?cd?node-v8.2.1指定NodeJS安装位置./configure?--prefix=/usr/local/node?不指定prefix,则可执行文件默认放在/usr?/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr?/local/share。你要卸载这个程序,要么在原来的make目录下用一次make?uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。?执行安装文件,足足等了40多分钟

make??make?install

??4、添加环境变量???创建并打开新文件?不存在node.sh文件?[root@localhost?node-v8.1.3]#?vim?/etc/profile.d/node.sh??输入node安装位置的bin目录所在位置?export?PATH=$PATH:/usr/local/node/binESC?输入:wq?提示:?命令输入错了vim-bash:?rt:?command?not?found-bash:?vim:?command?not?found[解决]i.?那么如何安装?vim?呢?输入rpm?-qa|grep?vim?命令,?陪兄如果?vim?已经正确安装,会返回下面的三行代码:root@server1?[~]#?rpm?-qa|grep?vimvim-enhanced-7.0.109-7.el5vim-minimal-7.0.109-7.el5vim-common-7.0.109-7.el5?如果少了其中的某一条,比如?vim-enhanced?的,就用命令?yum?-y?install?vim-enhanced?来安装:yum?-y?install?vim-enhanced?如果上面的三条一条都没有返回,?可以直接用?yum?-y?install?vim*?命令yum?-y?install?vim*

??使用su?root?source?/etc/profile.d/node.sh?=.?/etc/profile.d/node.sh?[不间断运行nodejs服务]?npm?install?forever?-g?forever?start?app.js

node实现自启动服务

对于nodeapp.js启动服务的话,遇到不可预测的错误时,服务停止后会影响网站或者系统手者的正常运行,,服务的自启动就显得袜薯棚非常的重要。

npminstall-gnodemon

安装结束后的使用方告则法

nodemonapp.js

服务启动成功。

linux如何后台运行node服务?

在你的任意目录输入命令:npminstallpm2-g

1.找到全局环境PATH路径

输入命令:echo$PATH

回车后:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

你的路径和我的可能不一样,但没关系,你可以选择任何一个以:隔开的路径做为系统环境路径,我通常会选/usr/local/bin

2:找到pm2的安装路径

在上面输入npminstallpm2-g全局安装时

/usr/sbin/nodejs/bin/pm2-/usr/sbin/nodejs/lib/node_moles/pm2/bin/pm2

/usr/sbin/nodejs/bin/pm2是安装路径(你的可能和我的不一样)

3.好了都找到了,

就重要的一步要开始了,睁大你的双眼。

命令为:ln-s/usr/sbin/nodejs/bin/空袜衡pm2/usr/local/bin/(注意空格)

格式:ln-s空格pm2安装路径空格系统环境路径

OK,搞定,接下来验证一把…

[root@iZmwyb7v60px1zZ~]#pm2list

回车...

$pm2startapp.js#启动app.js应用程序

$pm2startapp.js–name=”api”#启动应用程序并命名为“api”

$pm2startapp.js–watch#当文件变化时自动重启应用

$pm2startscript.sh#启动好销bash脚本

$pm2list#列表PM2启斗做动的所有的应用程序

$pm2monit#显示每个应用程序的CPU和内存占用情况

$pm2show[app-name]#显示应用程序的所有信息

$pm2logs#显示所有应用程序的日志

$pm2logs[app-name]#显示指定应用程序的日志

$pm2stopall#停止所有的应用程序

$pm2stop0#停止id为0的指定应用程序

$pm2restartall#重启所有应用

$pm2reloadall#重启clustermode下的所有应用

$pm2gracefulReloadall#

$pm2deleteall#关闭并删除所有应用

$pm2delete0#删除指定应用id0

$pm2scaleapi10#把名字叫api的应用扩展到10个实例

$pm2reset[app-name]#重置重启数量

$pm2startup#创建开机自启动命令

$pm2save#保存当前应用列表

$pm2resurrect#重新加载保存的应用列表

$pm2update#Saveprocesses,killPM2andrestoreprocesses

$pm2generate#

node本地服务启动报Error:listenEADDRINUSE,80端口被占用解决方法

1.第一步,根据端口号岁吵查找对应的进程号

netstat-ano|findstr80//列出进程极其占用的端口,且包含80

2.第二步,据进程号寻找进程名称

tasklist|findstr8156

3.找到是node.exe占用巧雀厅后,杀孝隐死进程

taskkill/f/imnode.exe

node是怎么启服务

下面是以express框胡穗衫架为例,启动node服务的三种方法(已测试),使用族基express安装的文件如下:

一、使用node命令启动

nodeserver/bin/www1

二、使用webStorm启动

1,打开webStorm,点裤腔击运行(run)下的编辑配置(EditConfiguration)

2,添加新的配置

3,命名并选择要执行的文件

选择要执行bin/www文件

4,启动node服务

三、pm2启动

1安装pm2

cnpmi-gpm21

是否安装成功,可检查版本pm2-v

2启动服务

pm2startserver/bin/www1

pm2是一个带有负载均衡功能的Node应用的进程管理器,pm2启动后,我们不需要另开一个窗口或停掉服务,便可以进行后续操作?

pm2可以通过配置,启动多个node服务,pm2list可以查看当前启动的所有node服务

『叁』 如何让nodejs在linux后台运行

加入 主文件是 index.js
那么可以用的方法有:
1.用forever 进行管理版
npm install -g forever
forever start index.js

2. 用自带的服务权nohub
nohup node index.js > myLog.log 2>&1 &

阅读全文

与nodejs关闭自动重启相关的资料

热点内容
电脑端微信查看源代码 浏览:795
ibatis配置文件详解 浏览:658
网络专用配置文件 浏览:837
科技论文word下载 浏览:570
vuejs20路由 浏览:853
vs导出项目源代码 浏览:826
ca证书投标生成文件怎么找不到 浏览:398
车机无网络怎么下载 浏览:891
测试linux配置文件可用 浏览:353
js158航班 浏览:129
医疗行业怎么做网站 浏览:135
java引用数组 浏览:467
c打开文件相对路径 浏览:542
编程里面ST1是什么意思 浏览:311
win10打不开txt文件 浏览:650
如何在手机上练习游戏编程代码 浏览:112
还原系统文件路径 浏览:52
网络猫怎么连接路由器怎么设置无线路由器 浏览:165
苹果5s移动能升级网络设置 浏览:99
一闪app自拍 浏览:56

友情链接