精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一些小眾卻有用的 Node.js 包

開發 前端
yargs 是一個用來處理命令行參數的包,可以幫你處理自行設置的命令行標志和輸入的任何類型的數據,其中包括布爾值、浮點數和字符串等。

yargs

yargs 是一個用來處理命令行參數的包,可以幫你處理自行設置的命令行標志和輸入的任何類型的數據,其中包括布爾值、浮點數和字符串等。這個包非常簡單明了,不需要在項目中編寫大量的樣板代碼。

[[345004]]

yargs 能夠幫你處理 “用法幫助” 輸出,可以輕松地告訴用戶在使用你程序時需要輸入哪些選項,包括哪些是必選的。

  1. var argv = require('yargs') 
  2.     .usage('Usage: $0 -x [num] -y [num]') 
  3.     .demand(['x','y']) 
  4.     .argv; 
  5.   
  6. console.log('Pow(x, y):', Math.pow(argv.x, argv.y)); 

把上面的代碼保存為 index.js,然后在命令行中執行 node index.js -x 3,會看到如下消息:

  1. Usage: index.js -x [num] -y [num] 
  2.  
  3. Options: 
  4.   -x                                   [required] 
  5.   -y                                   [required] 
  6.  
  7. Missing required argument: y 

yargs 能夠提示我們命令行中到底缺少什么參數,而我們只需要簡單的調用 .usage()和 .demand() 方法就行了。

toobusy

這是一個非常實用的包。它輪詢 Node 事件循環并跟蹤完成請求所需的時間,如果發現延遲時間太長,則 toobusy 會通知你,然后你就可以將 HTTP 503 "Service Unavailable" 狀態碼返回給客戶端。

這種處理是很重要的,因為服務器越忙,請求所等待的時間也就越長。這很快就成為一個很復雜的問題,隨著時間的流逝會越來越嚴重。如果你聽之任之的話,那么服務將會崩潰。如果我們能及時的停止一些請求的處理,并返回 HTTP 503,這樣的話至少還能處理一些請求。

可以輕松的用 npm 命令安裝 toobusy:

  1. npm install toobusy 

然后把它和類似 Express 的東西集成在一起:

  1. var toobusy = require('toobusy'), 
  2.     express = require('express'); 
  3.      
  4. var app = express(); 
  5.      
  6. // 如果服務器壓力過大將會阻止請求 
  7. app.use(function(req, res, next) { 
  8.  if (toobusy()) { 
  9.   res.send(503, "Too many users!"); 
  10.  } else { 
  11.   next(); 
  12.  }  
  13. }); 
  14.    
  15. var server = app.listen(3000); 
  16.    
  17. process.on('SIGINT', function() { 
  18.  server.close(); 
  19.  toobusy.shutdown(); // 正常退出 
  20.  process.exit(); 
  21. }); 

不需要寫多少代碼,也不用太多的配置就能繼承到我們自己的項目中。

chalk

在命令行上很難開發出一個好用的用戶界面,因為用于和用戶交互的只是命令行窗口。那么你該如何去提示一些重要的信息呢?在輸出的文本中添加格式不失為一種好方法。Express 就是一個很典型的例子,從它的輸出中,你可以很輕松地快讀找到重要的信息。

以下是 chalk 支持的樣式列表:

修飾符bold

  • underline
  • dim
  • reset
  • hidden
  • inverse
  • italic (并非所有環境都支持)
  • strikethrough (任何環境下都不支持)

顏色

  • red
  • black
  • green
  • white
  • yellow
  • blue (在 Windows 上會使用較亮的版本,因為普通的藍色很難辨認)
  • cyan
  • gray
  • magenta

背景顏色

  • bgBlue
  • bgBlack
  • bgRed
  • bgGreen
  • bgCyan
  • bgYellow
  • bgWhite
  • bgMagenta

雖然官方只支持這些顏色,但是任何符合 xterm 標準的終端都可以使用完整的 8 位色代碼。

只需要將字符串傳給用于著色或格式化的函數就能輕松的格式化這些文本。如果你需要讓用戶注意到嚴重錯誤提示,可以用下面的格式:

  1. var chalk = require('chalk'); 
  2.  
  3. var str = chalk.red.bold('ERROR: ') + chalk.bold('Everything just blew up...'); 
  4. console.log(str); 

node-inspector

好用的調試器很難找,尤其是那些帶有好用的 GUI 的調試器,node-inspector 為你提供了一個網頁 GUI 來幫助調試代碼。它有標準調試器的所有功能,例如斷點、單步執行、退出代碼以及變量檢查等,另外還有一些不太常用的功能,但是這些功能非常有用,例如 CPU 和堆分析、網絡客戶端請求檢查以及實時編輯運行代碼的功能。

node-inspector

不過 node-inspector 只與 Chrome 和 Opera 兼容,因為它使用了Blink Developer Tools,并與Node兼容。

一直以來我非常依賴控制臺輸出進行調試,這會花費了大量的時間。使用 GUI 能夠大大的節省調試時間。

terminal-kit

如果你的 Node 程序需要在命令行下支持除簡單的文本輸入輸出之外的其他操作,那么你應該需要 terminal-kit。terminal-kit 簡化了與用戶交互的許多東西,使你可以專注于在程序中開發重要的內容。terminal-kit 的主要功能是:

  • 文字樣式(很像 chalk)
  • 編輯屏幕
  • 進度條
  • 用戶輸入

有很多適合終端工具包的例子。例如,如果你需要從網上下載一些內容,那么就需要向用戶顯示進度條。下面的代碼用來顯示虛擬進度條:

  1. var terminal = require( 'terminal-kit' ).terminal; 
  2.  
  3. var progressBar; 
  4. var progress = 0
  5.  
  6. function updateProgress() { 
  7.     // 產生一個隨機的進度值 
  8.     progress += Math.random() / 10; 
  9.     progressBar.update(progress); 
  10.      
  11.     // 檢查是否完成 
  12.     if (progress >= 1) { 
  13.         setTimeout(function() { 
  14.          terminal('\n'); 
  15.          process.exit(); 
  16.         }, 250); 
  17.     } 
  18.     else { 
  19.         setTimeout(updateProgress, 100 + Math.random() * 500); 
  20.     } 
  21.  
  22. progressBar = terminal.progressBar({ 
  23.     width: 80, 
  24.     title: 'Downloading file:', 
  25.     eta: true, 
  26.     percent: true 
  27. }); 
  28.  
  29. updateProgress(); 

上面的代碼會產生下面這種效果:

terminal-kit進度欄

validator

validator 可以幫你進行一系列常見的字符串驗證(例如:電子郵件地址、電話號碼、IP地址等)。每當你從用戶那里獲得輸入時,這樣的軟件包都是必不可少的。用戶會犯錯誤,并會在文本框中輸入一些非常奇怪的東西,所以需要一個驗證輸入的包,避免數據損壞或服務器崩潰。

以下是一些常用的驗證器:

  • isEmail(str [, options])
  • isIP(str [, version])
  • isMobilePhone(str, locale)
  • isURL(str [, options])

validator也提供檢測器,可以對輸入字符串進行規范化、刪除或轉義。例如對用戶提交的內容進行清理,避免他們輸入惡意的 HTML 或 JavaScript 代碼。

下面是常用的檢測器:

  • blacklist(input, chars)
  • escape(input)
  • normalizeEmail(email [, options])
  • whitelist(input, chars)

normalizeEmail() 方法它能夠確保電子郵件地址都是小寫字母,甚至可以刪除需要忽略的字符。假設你有電子郵件 abc.def+ghi@163.com,normalizeEmail() 會將其標準化為 abcdefghi@163.com。

formidable

formidable 可以幫你處理文件上傳的每個步驟,包括 multi-part 解析器、把文件寫入磁盤以及錯誤處理等。這是我最喜歡的一個包,如果你不想重新發明輪子可以試一試。

下面是一個在普通 HTTP 服務器上使用 formidable 的例子,代碼是從包本身中給出的示例修改而來的:

  1. var http = require('http'); 
  2. var util = require('util'); 
  3. var formidable = require('formidable'); 
  4. var path = require('path'); 
  5.  
  6. var PORT = 8080
  7.  
  8. var root = path.join(__dirname, '../'); 
  9. exports.dir = { 
  10.  root    : root, 
  11.  lib     : root + '/lib', 
  12.  fixture : root + '/test/fixture', 
  13.  tmp     : root + '/test/tmp', 
  14. }; 
  15.  
  16. var server = http.createServer(function(req, res) { 
  17.   if (req.url == '/') { 
  18.     res.writeHead(200, {'content-type': 'text/html'}); 
  19.     res.end( 
  20.       '<form action="/post" method="post">' + 
  21.       '<input type="text" name="title"><br>' + 
  22.       '<input type="text" name="data[foo][]"><br>' + 
  23.       '<input type="submit" value="Submit">' + 
  24.       '</form>
  25.     ); 
  26.   } else if (req.url == '/post') { 
  27.     var form = new formidable.IncomingForm(), 
  28.         fields = []; 
  29.  
  30.     form 
  31.       .on('error', function(err) { 
  32.         res.writeHead(200, {'content-type': 'text/plain'}); 
  33.         res.end('error:\n\n' + util.inspect(err)); 
  34.       }) 
  35.       .on('field', function(field, value) { 
  36.         console.log(field, value); 
  37.         fields.push([field, value]); 
  38.       }) 
  39.       .on('end', function() { 
  40.         console.log('-> post done'); 
  41.         res.writeHead(200, {'content-type': 'text/plain'}); 
  42.         res.end('received fields:\n\n ' + util.inspect(fields)); 
  43.       }); 
  44.     form.parse(req); 
  45.   } else { 
  46.     res.writeHead(404, {'content-type': 'text/plain'}); 
  47.     res.end('404'); 
  48.   } 
  49. }); 
  50.  
  51. server.listen(PORT); 
  52.  
  53. console.log('listening on http://localhost:' + PORT + '/'); 

shelljs

shelljs是一個能夠讓你在任何系統上使用通用的Unix命令的包,不管是 Windows、Linux 還是 Mac。這樣你就不用再為項目分別編寫 bash 和批處理腳本。shelljs 提供了類似 Unix 的環境,如果你需要編寫腳本來運行測試、提交代碼或在服務器上啟動,則只需編寫一次即可。

可以用命令執行類似操作:

  1. require('shelljs/global'); 
  2.  
  3. ls('*.js').forEach(function(file) { 
  4.  sed('-i', 'BUILD_VERSION', 'v2.0.3', file); 
  5.  sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file); 
  6.  sed('-i', /.*REPLACE_THIS_LINE.*\n/, cat('macro.js'), file); 
  7. }); 

執行常見命令:

  1. require('shelljs/global'); 
  2.  
  3. mkdir('-p', 'release/data'); 
  4. cp('-R', 'data/*', 'release/data'); 

檢查可用的二進制文件:

  1. require('shelljs/global'); 
  2.  
  3. if (!which('git')) { 
  4.  echo('This script requires git!'); 
  5.  exit(1); 

甚至可以像在 bash 腳本中一樣運行命令:

  1. if (exec('git commit -am "Release commit"').code !== 0) { 
  2.   echo('Error: Git commit failed!'); 
  3.   exit(1); 

 

責任編輯:趙寧寧 來源: 前端先鋒
相關推薦

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹

2023-06-20 19:35:00

Node.js工具

2021-12-25 22:29:57

Node.js 微任務處理事件循環

2020-05-29 15:33:28

Node.js框架JavaScript

2012-02-03 09:25:39

Node.js

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2012-10-24 14:56:30

IBMdw

2011-11-10 08:55:00

Node.js

2021-11-24 08:51:32

Node.js監聽函數

2025-07-21 01:00:00

UDP性能QPS

2021-09-26 05:06:04

Node.js模塊機制

2021-11-06 18:40:27

js底層模塊

2011-11-02 09:04:15

Node.js

2015-08-27 11:16:14

ios開發技巧

2011-03-31 14:16:54

Cacti技巧

2011-10-25 09:28:30

Node.js
點贊
收藏

51CTO技術棧公眾號

欧美视频一二三区| 国产男男gay体育生白袜| 国产91免费在线观看| 高清日韩中文字幕| 麻豆极品一区二区三区| 日韩欧美国产电影| 日本一区视频在线| 国产一级一片免费播放| 精品美女一区| 91免费在线看| 欧美极品欧美精品欧美视频| 深夜黄色小视频| 四虎国产精品永远| 综合视频一区| 亚洲视频一二区| 国产精品欧美日韩久久| 51调教丨国产调教视频| 韩国日本一区| 国产一区二区美女诱惑| 色婷婷久久一区二区| 九九九九免费视频| 乱色精品无码一区二区国产盗| 亚洲一区中文| 亚洲国产精品电影在线观看| 91视频 - 88av| 国产视频在线一区| 久久国产精品毛片| 日韩国产欧美区| 国产日本在线播放| 免费观看黄色av| 亚洲国产国产亚洲一二三| 欧美不卡一区二区三区四区| 欧美黑人在线观看| 亚洲av无码乱码国产精品久久 | 红桃视频国产精品| 日韩一级视频免费观看在线| 日本一二三区视频在线| 国产婷婷在线视频| 日av在线不卡| 色一情一乱一区二区| 日本护士做爰视频| 伊人久久综合一区二区| 久久精品无码一区二区三区| 国产91在线播放精品91| 91成人精品一区二区| 黄色欧美视频| 在线视频综合导航| 综合国产精品久久久| 国产视频在线观看免费 | 欧美大片久久久| 污片在线免费观看| 成人av高清在线| 欧洲精品在线视频| а天堂中文在线资源| 国产区一区二| 精品久久久久久久久久久| 免费中文日韩| 一级做a爱片久久毛片| 午夜精品电影| 亚洲精品自拍视频| 日韩视频免费播放| 国产在线观看免费网站| 精品一区二区久久久| 久久视频在线视频| 亚洲欧美日韩偷拍| 草民电影神马电影一区二区| 亚洲国产视频一区二区| 久久影视中文粉嫩av| 亚欧洲精品视频| 久久99精品国产.久久久久久| 国产精品毛片a∨一区二区三区|国 | 欧美午夜黄色| 国产精品538一区二区在线| 91精品国产91久久久久久吃药| 一级黄色片大全| 欧美国产中文高清| 欧美在线你懂得| www欧美激情| japansex久久高清精品| 欧美体内谢she精2性欧美| 中日韩在线视频| 大片免费在线看视频| 久久婷婷综合激情| 99久久精品免费看国产一区二区三区 | 欧美精品xxxxbbbb| 国产又黄又大又粗视频| 影视一区二区三区| 黄色一区二区在线观看| 国产精品少妇在线视频| 久草在线资源站资源站| 中文字幕一区二区三区蜜月| 精品国产免费久久久久久尖叫| 国产精品无码在线播放| 男女男精品视频网| 欧美中文字幕在线视频| 超碰在线免费97| 午夜在线视频观看日韩17c| 国产精品久久久久久久久| 日本天堂网在线观看| 亚洲国产精品成人| 中文字幕日韩高清| 久久久视频6r| 亚洲调教一区| 亚洲精品国产美女| 国产吃瓜黑料一区二区| 日韩三级成人| 欧美唯美清纯偷拍| 三上悠亚 电影| 久久视频社区| 亚洲日本aⅴ片在线观看香蕉| 丝袜熟女一区二区三区| 国产亚洲电影| 在线播放亚洲激情| 亚洲午夜久久久久久久国产| 九九久久成人| 亚洲天堂免费观看| 波多野结衣先锋影音| 日韩精品91| 中文字幕综合在线| 日产欧产va高清| 九色|91porny| 国产综合动作在线观看| 韩国av免费在线观看| 中文字幕精品一区二区精品绿巨人 | 国产女同互慰高潮91漫画| 精品香蕉在线观看视频一| 四虎884aa成人精品| 久久精品青草| 国产精品对白刺激| 刘亦菲久久免费一区二区| 亚洲三级在线免费观看| av污在线观看| 欧美日韩精品一区二区视频| 亚洲大胆人体视频| 99视频只有精品| 亚洲视屏一区| 亚洲一区二区自拍| 国产成人自拍一区| 嫩草伊人久久精品少妇av杨幂| 婷婷五月色综合香五月| 亚洲国产精品久久久久秋霞蜜臀| 蜜桃av免费观看| 99精品全国免费观看视频软件| 久久久精品久久久| 久久中文字幕在线观看| 一本一道久久综合狠狠老精东影业| 欧美一级大胆视频| 在线观看免费视频一区| 国产福利一区二区| 中文字幕日韩一区二区三区不卡| 亚洲a∨精品一区二区三区导航| 日韩精品高清视频| 欧美a∨亚洲欧美亚洲| 美女视频一区二区三区| 视频一区亚洲| 欧美激情成人动漫| 欧美一级片免费看| 欧美成人精品一区二区免费看片 | 久久全球大尺度高清视频| 国产高潮久久久| 99精品视频在线观看| 亚洲第一在线综合在线| 国产黄色大片在线观看| 欧美成人精品二区三区99精品| 九九热这里有精品视频| 久久男女视频| 91免费观看| 成人在线观看网站| 亚洲综合男人的天堂| 少妇性l交大片| 亚洲va欧美va人人爽成人影院| 亚洲欧美激情一区| 成人黄色激情视频| 国产精品久久久久久亚洲毛片| 免费在线看黄色片| 久久久久观看| 美女av一区二区| 欧美二区在线观看| 国产精品成人无码专区| 精品久久精品| 国产欧美日韩最新| 手机在线精品视频| 亚洲欧美一区二区三区孕妇| 中文字幕一二三区| 亚洲一区欧美激情| 午夜精品短视频| 奇米一区二区| 欧美专区在线播放| 求av网址在线观看| 色中色一区二区| 欧美一级片黄色| 久久午夜影视| 久久国产精品免费观看| 欧美尿孔扩张虐视频| 欧美伦理91i| 国产又粗又大又爽视频| 一区二区理论电影在线观看| 中文字幕a在线观看| 轻轻草成人在线| 欧洲精品在线播放| 国内精品久久久久久99蜜桃| 91原创国产| 婷婷激情一区| 亚洲欧美在线第一页| 国产一区二区三区黄片| 天天综合天天综合色| 熟女av一区二区| 美腿丝袜亚洲色图| 僵尸世界大战2 在线播放| 日韩精品免费| 久久99精品国产一区二区三区| 丰乳肥臀在线| xxxxx成人.com| 国产口爆吞精一区二区| 欧美色视频日本版| 永久免费看黄网站| 亚洲国产成人在线| 欧美无人区码suv| 国产高清精品在线| 久久久久久久高清| 日韩中文字幕区一区有砖一区 | 欧美午夜一区二区三区免费大片| 青春草免费视频| 国产精品高潮呻吟| av网在线播放| 26uuu另类欧美| 国产成人av无码精品| 国产成人午夜99999| 国模私拍视频在线观看| 亚州av乱码久久精品蜜桃| 蜜桃臀一区二区三区| 国产一级成人av| 不卡日韩av| 久久的色偷偷| 成人黄色网免费| 韩国成人免费视频| 久久久成人精品| 免费黄色在线| 日韩中文视频免费在线观看| yw在线观看| 国产亚洲免费的视频看| 四虎影院在线域名免费观看| 日韩av一区在线| 亚洲色偷精品一区二区三区| 精品盗摄一区二区三区| 天天干天天操天天爱| 99精品国产91久久久久久 | 中文在线字幕免费观| 日韩理论片在线| 婷婷丁香综合网| 中文字幕一区三区| 97精品在线播放| 亚洲欧美一区二区三区久本道91| 亚洲天堂黄色片| 亚洲久草在线视频| 搡老熟女老女人一区二区| 菠萝蜜视频在线观看一区| 怡红院一区二区| 99re热这里只有精品免费视频| 在线免费观看污视频| 91丨九色丨国产丨porny| 免费看黄色的视频| 欧美国产精品专区| 国产极品美女在线| 亚洲精品国久久99热| 亚洲 小说 欧美 激情 另类| 久久久久综合网| www成人啪啪18软件| 亚洲欧洲国产专区| 亚洲第一香蕉网| 欧美国产日韩在线观看| 天海翼在线视频| 一区二区日韩电影| www.国产色| 欧美日韩亚洲综合一区二区三区| 国产无套在线观看| 欧美日韩中文字幕综合视频| 天天干,天天干| 91精品国产综合久久久久久漫画 | 欧美三级视频在线观看| 国产巨乳在线观看| 日韩电影中文字幕av| 日本中文字幕视频在线| 亚洲欧美制服丝袜| 黄色av网站在线播放| 一区二区三区视频免费| 动漫一区在线| 欧美一区二区三区艳史| 丁香久久综合| 成人在线免费观看一区| 高清不卡一区| 精品视频免费观看| 欧美电影一区| 亚洲日本精品国产第一区| 免费视频国产一区| 国产又大又长又粗又黄| 色狮一区二区三区四区视频| 成人av在线播放观看| 久久久久久9| 性一交一黄一片| 国产色综合久久| 亚洲精品国产熟女久久久| 亚洲欧洲精品一区二区精品久久久 | 欧美日韩国产欧| 最新av在线免费观看| 99av国产精品欲麻豆| 午夜精品久久久久久久99热影院| www.爱久久.com| 无码一区二区精品| 国产精品不卡一区二区三区| 天天爽夜夜爽夜夜爽精品| 欧美精品v国产精品v日韩精品| 日本福利片在线| 欧美激情综合色| a一区二区三区亚洲| 日韩中文一区| 亚洲欧美日本日韩| 美女流白浆视频| ...中文天堂在线一区| 日本欧美www| 亚洲欧美日韩在线高清直播| 国产在线xxx| 亚洲在线免费视频| 久久精品国产68国产精品亚洲| 久久久免费视频网站| 日韩综合在线视频| 午夜一区二区三区免费| 亚洲成人高清在线| www.久久成人| 国产丝袜一区二区| 国产一线二线在线观看| 亚洲精品日韩av| 五月天久久777| 中日韩av在线播放| 国产精品免费视频一区| 97人妻精品视频一区| 国产亚洲精品久久| 性欧美hd调教| 日本一区视频在线播放| 久久这里只有| 欧美成人午夜精品免费| 国产精品午夜免费| 国产成人a v| 精品免费日韩av| 午夜伦理在线视频| 97超级碰碰| 欧美精品99| 日韩精品国产一区| 亚洲国产三级在线| 狠狠综合久久av一区二区| 欧美激情a在线| 国产日韩另类视频一区| 久久福利电影| 久久精品日产第一区二区| 一区二区精品免费| 欧美三级乱人伦电影| 日本三级在线播放完整版| 成人国产亚洲精品a区天堂华泰| 999久久久国产精品| 日韩欧美色视频| 国产视频911| 亚洲视频一区在线播放| 久久综合伊人77777蜜臀| 日韩欧美高清一区二区三区| 亚洲国产精品无码av| 91碰在线视频| 在线免费观看视频网站| 久久国产精品久久久| av不卡一区二区| 欧美h视频在线观看| 国产精品66部| 69国产精品视频免费观看| 在线视频中文亚洲| 精品亚洲二区| 免费看又黄又无码的网站| 韩国v欧美v亚洲v日本v| 欧美精品xxxxx| 国产午夜精品理论片a级探花| 免费高清视频在线一区| 中文字幕超清在线免费观看| 9l国产精品久久久久麻豆| 青娱乐在线免费视频| 欧美精品亚州精品| 亚洲精品国产动漫| 亚洲免费成人在线视频| 亚洲国产sm捆绑调教视频| 国产二区在线播放| 欧美在线视频免费播放| 欧美丝袜丝交足nylons172| 亚洲国产精品久久久久婷蜜芽| 国产色产综合产在线视频 | 日韩精品久久久久| 国产一区精品福利| 六月婷婷在线视频| 国产精品久久午夜| 无码精品人妻一区二区| 成人免费看黄网站| 亚洲一区区二区| 久久久久久久九九九九| 中文字幕精品在线视频|