導航:首頁 > 編程語言 > 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

友情鏈接