gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

怎么停止nodejs

停止nodejs的方法:1、通過“Ctrl+C”來關閉NodeJS服務器;2、判斷客戶端提交的請求信息,并調用“server.close()”關閉服務器即可。

怎么停止nodejs

本文操作環(huán)境:windows7系統(tǒng)、nodejs10.16.2版、Dell G3電腦。

怎么停止nodejs?

NodeJS服務器退出:完成任務,優(yōu)雅退出 :

首先,不能共享完畢之后,都通過Ctrl+C來關閉NodeJS服務器。

其次,如果僅僅能向客戶端提供d:ilinkit_logo.png文件的下載,是沒有意義的,共享哪個文件,應該可以通過傳入的參數(shù)來指定。

老規(guī)矩,先上一個圖:

怎么停止nodejs

我們首先來實現(xiàn)退出功能,如果客戶端向服務器提交了http://localhost:8000/exit的請求,我們就執(zhí)行服務器的退出操作。

上一篇文章我們已經(jīng)能夠識別出/xiaohong的請求,所以這個實現(xiàn)起來很簡單,代碼如下:

var http = require( 'http' ); var fs = require('fs'); var url = require( 'url' );  var file_path = "D:\ilinkit_logo.png" ; var file_stream ; var buffer_box = [] ; var file_length = 0 ;  var file_name = file_path.substr( file_path.lastIndexOf('\')+1 );  fs.stat( file_path , function ( err , stat ){             if (err) {                 if ('ENOENT' == err.code) {                     console.log( 'File does not exist...' );                 } else {                     console.log( 'Read file exception...' );                 }             } else {                 file_stream = fs.createReadStream( file_path );                 file_stream.on( 'data' , function( chunk ){                     buffer_box.push( chunk ) ;                     file_length += chunk.length ;                 } );                 file_stream.on( 'end' , function(  ){                     console.log( "文件讀取完畢" );                 } );                 file_stream.on('error', function(err){                     console.log( "文件讀取失敗!" );                 });                  var server =http.createServer( function ( request ,response ){                   var h_name = request.headers.host ;                   var h_path = url.parse( request.url ).pathname ;                    if( h_path === '/xiaohong' ){                     response.setHeader( 'Content-Type' , 'application/octet-stream' );                     response.setHeader( 'Content-Disposition' , 'attachment; filename=' + encodeURIComponent(file_name) );                      for( var buffer_index = 0 ; buffer_index<buffer_box.length ; buffer_index++ )                     {                         response.write( buffer_box[buffer_index] );                     }                     response.end();                    }                    else if( h_name === 'localhost:8000' && h_path === '/exit' ){                     response.end('Bye!');                     server.close() ;                     console.log( 'Bye!' );                    }                    else{                     response.end( 'Hello, iLinkIT' );                    }                  } );                 server.listen( 8000 );                 console.log( 'HTTP服務器啟動中,端口:8000.....' );              }//end else,讀取文件沒有發(fā)生錯誤 });

關鍵的代碼解析如下:

第33行,我們通過request對象獲取客戶端請求的主機及端口內容。

第46行~第50行,我們判斷客戶端提交的請求信息,如果是http://localhost:8000/exit,則調用server.close()關閉服務器。為什么要判斷是不是localhost提交的請求?因為我們希望僅僅在服務器本地提交的請求才能關閉NodeJS服務器。

驗證方式如下:

1. 啟動服務器:打開命令行,進入js腳本所在的位置,執(zhí)行:node h_ilinkit_1.js。

2. 打開瀏覽器,輸入:http://localhost:8000,顯示如下:

怎么停止nodejs

說明當前服務器啟動正常。

3. 打開瀏覽器,輸入:http://localhost:8000/exit。

怎么停止nodejs

提示NodeJS服務器已經(jīng)關閉,我們把瀏覽器關閉之后,發(fā)現(xiàn)服務器已經(jīng)正常退出,如下所示。

怎么停止nodejs

這樣,我們就沒必要每次為了退出服務器,都去按Ctrl + C了。

通過請求退出服務器就介紹到這里,接下來我們再看一下,如果在啟動NodeJS服務器的時候,給它傳入?yún)?shù)。對應到我們愛蓮(iLinkIT)的場景,希望能夠將要共享的文件的路徑作為參數(shù)傳遞給NodeJS服務器,服務器根據(jù)傳入的文件路徑讀取數(shù)據(jù)到緩沖區(qū),接受客戶端的響應。

代碼如下:

var http = require( 'http' ); var fs = require('fs'); var url = require( 'url' );  var args = process.argv.splice( 2 ); var file_path = args.join( '' ) ; var file_stream ; var buffer_box = [] ; var file_length = 0 ;  var file_name = file_path.substr( file_path.lastIndexOf('\')+1 );  fs.stat( file_path , function ( err , stat ){             if (err) {                 if ('ENOENT' == err.code) {                     console.log( 'File does not exist...' );                 } else {                     console.log( 'Read file exception...' );                 }             } else {                 file_stream = fs.createReadStream( file_path );                 file_stream.on( 'data' , function( chunk ){                     buffer_box.push( chunk ) ;                     file_length += chunk.length ;                 } );                 file_stream.on( 'end' , function(  ){                     console.log( "文件讀取完畢" );                 } );                 file_stream.on('error', function(err){                     console.log( "文件讀取失??!" );                 });                  var server =http.createServer( function ( request ,response ){                   var h_name = request.headers.host ;                   var h_path = url.parse( request.url ).pathname ;                    if( h_path === '/xiaohong' ){                     response.setHeader( 'Content-Type' , 'application/octet-stream' );                     response.setHeader( 'Content-Disposition' , 'attachment; filename=' + encodeURIComponent(file_name) );                      for( var buffer_index = 0 ; buffer_index<buffer_box.length ; buffer_index++ )                     {                         response.write( buffer_box[buffer_index] );                     }                     response.end();                    }                    else if( h_name === 'localhost:8000' && h_path === '/exit' ){                     response.end('Bye!');                     server.close() ;                     console.log( 'Bye!' );                    }                    else{                     response.end( 'Hello, iLinkIT' );                    }                  } );                 server.listen( 8000 );                 console.log( 'HTTP服務器啟動中,端口:8000.....' );              }//end else,讀取文件沒有發(fā)生錯誤 });

關鍵代碼解析如下:

第5行,通過process.argv.splice( 2 )獲得了傳入的命令行參數(shù)。

之前我們啟動NodeJS服務器的命令為:node h_ilinkit_1.js,而要傳入?yún)?shù)之后,執(zhí)行的命令為node h_ilinkit_2.js d:ilinkit_logo.rar,

process.argv會將輸入命令行的所有的內容都獲取到,包括node h_ilinkit_2.js部分,我們通過調用splice( 2 ),獲得傳入的第3個參數(shù)的內容,將前面的兩個字符串剔除掉。

第6行,將輸入命令行的內容中,除了node h_ilinkit_2.js之外的內容合并在一起,作為文件路徑。

驗證方式如下:

1. 啟動服務器:打開命令行,進入js腳本所在的位置,執(zhí)行:node h_ilinkit_2.js d:ilinkit_logo.rar,如下圖所示:

怎么停止nodejs

3. 打開瀏覽器,輸入:http://localhost:8000/xiaohong,顯示如下:

怎么停止nodejs

可見,我們已經(jīng)實現(xiàn)了通過命令行傳入?yún)?shù)的功能,因為我們傳入的是d:ilinkit_logo.rar,所以,客戶端提交請求后,下載到的文件也是ilinkit_logo.rar。

簡單回顧一下:

1. 借助NodeJS的服務器響應機制,通過給服務器提交/exit的請求,實現(xiàn)服務器的退出操作。

2. 通過在啟動NodeJS時,向服務器傳入共享文件的路徑,實現(xiàn)共享文件的自定義,這樣,想共享哪個文件,就可以共享哪個文件。

推薦學習:《node.js視頻教程》

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
精品久久久无码人妻字幂| 欧美午夜小视频| 日韩福利视频在线| 人妻精品无码一区二区三区| www.激情小说.com| 一区二区三区 日韩| 五月天婷婷在线观看视频| 91精品国产吴梦梦| 男人的天堂99| 日韩国产一级片| 精品久久久无码人妻字幂| 欧美污视频网站| 成人网站免费观看入口| 国产又爽又黄ai换脸| 亚洲一二三av| 性欧美在线视频| 天天色综合天天色| 亚洲精品中文字幕无码蜜桃| 日本888xxxx| 欧美精品一区免费| 一本色道久久88亚洲精品综合| 亚洲小视频网站| 日韩欧美亚洲天堂| 四虎永久免费网站| 香港三级日本三级a视频| 欧美h视频在线观看| 五月天中文字幕在线| 亚洲精品在线网址| 国产福利精品一区二区三区| 男人天堂网视频| 国产美女三级视频| 成人性生活视频免费看| 激情成人开心网| 成人免费性视频| 国产亚洲天堂网| 妞干网在线免费视频| 孩娇小videos精品| 五月天在线免费视频| 中文字幕av专区| 57pao国产成永久免费视频| 午夜在线观看av| 一本大道东京热无码aⅴ| 国产成人在线免费看| 久久久久久久久久久久久国产精品| 91免费视频污| 男人草女人视频| www.中文字幕在线| 欧洲熟妇精品视频| 亚洲区成人777777精品| 欧美狂野激情性xxxx在线观| 国产xxxxx在线观看| 免费精品99久久国产综合精品应用| 中文字幕一区二区在线观看视频| 日韩一级片一区二区| 大桥未久一区二区| 无码 制服 丝袜 国产 另类| 两性午夜免费视频| 第四色婷婷基地| 久久久久久免费看| 亚洲男人天堂av在线| 色偷偷中文字幕| 免费av网址在线| 99久re热视频精品98| 国产l精品国产亚洲区久久| 婷婷中文字幕在线观看| 国产高清www| 第一区免费在线观看| av网站大全免费| 中文字幕在线视频一区二区三区| 国产伦精品一区二区三区四区视频_| 亚洲污视频在线观看| 国产黄页在线观看| 高清无码视频直接看| 国内外成人激情视频| 无套内谢丰满少妇中文字幕| 乱子伦视频在线看| 成人在线观看毛片| www.污网站| av在线网址导航| 国产精品无码av无码| 国产婷婷一区二区三区| 亚洲欧美日韩三级| 香蕉视频禁止18| 日本成人黄色网| 男女视频一区二区三区| 欧洲黄色一级视频| 国产免费黄视频| a√天堂在线观看| 97免费视频观看| xxxx18hd亚洲hd捆绑| 久久久无码中文字幕久...| 伊人精品视频在线观看| 欧洲美女亚洲激情| 1314成人网| 天天综合中文字幕| 欧美性受黑人性爽| 992kp免费看片| 乌克兰美女av| 亚洲第一区第二区第三区| 黄色一级片国产| 欧美一级片中文字幕| 日韩欧美视频免费在线观看| 日本爱爱免费视频| 精品国偷自产一区二区三区| 国产女主播自拍| 国产91在线免费| av五月天在线| 精品中文字幕av| 欧美成人黑人猛交| 中文字幕亚洲影院| 99热一区二区三区| 国产又大又黄又粗又爽| japanese在线视频| 亚洲理论电影在线观看| 精品视频在线观看一区| 杨幂毛片午夜性生毛片 | 97超碰国产精品| 老子影院午夜伦不卡大全| 大陆av在线播放| 午夜精品久久久久久久无码| 各处沟厕大尺度偷拍女厕嘘嘘| 最新中文字幕免费视频| 成人免费黄色av| 日本www在线播放| 欧美日韩理论片| 好吊色这里只有精品| 日韩欧美不卡在线| 久久精品午夜福利| 国产麻花豆剧传媒精品mv在线| 黑人粗进入欧美aaaaa| 中国女人做爰视频| 国产视频1区2区3区| 午夜视频在线网站| 亚洲欧美自偷自拍另类| av动漫免费观看| av网址在线观看免费| 国产美女在线一区| 亚洲视频第二页| 亚洲黄色网址在线观看| 中文字幕免费高清在线| 大肉大捧一进一出好爽视频| 国产日韩欧美大片| 国产美女无遮挡网站| 国产精品美女在线播放| 亚洲中文字幕无码一区二区三区| 性欧美极品xxxx欧美一区二区| 蜜桃视频一区二区在线观看| 欧美一级免费在线| 毛片av在线播放| 欧美日韩在线免费观看视频| 欧美精品第三页| 免费观看日韩毛片| youjizzxxxx18| 日本久久精品一区二区| 我看黄色一级片| 天天爽天天爽夜夜爽| 免费在线观看的毛片| 国产无套内射久久久国产| 精品人妻人人做人人爽| 亚洲一级片网站| 亚洲无在线观看| 黄色三级视频片| 亚洲自偷自拍熟女另类| 在线观看av日韩| 天天综合网久久| 国产九九九视频| 亚洲综合激情五月| 日日摸日日碰夜夜爽av| 精品久久久久久无码国产| 污色网站在线观看| 一级全黄肉体裸体全过程| 免费网站永久免费观看| 五月丁香综合缴情六月小说| 国内精品视频一区二区三区| 黄色小视频免费网站| 国产二级片在线观看| 国产欧美日韩小视频| 国产91美女视频| 99热这里只有精品在线播放| 国产淫片av片久久久久久| 亚洲精品综合在线观看| 51xx午夜影福利| 97成人在线免费视频| 少妇无码av无码专区在线观看 | 国产免费999| 丰满少妇久久久| 四季av一区二区| 成人av在线播放观看| 丁香婷婷综合激情| 国产三级三级三级看三级| 五月天综合婷婷| 激情五月婷婷基地| av中文字幕av| 国产专区在线视频| www.国产福利| 日韩av黄色网址| 中文字幕一区二区三区四区五区人| 国产wwwxx| 各处沟厕大尺度偷拍女厕嘘嘘| 看看黄色一级片|