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

完全面向于初學(xué)者的Node.js指南

開(kāi)發(fā) 前端 開(kāi)發(fā)工具
新的上班時(shí)間是周二至周六,工作之余當(dāng)然要堅(jiān)持學(xué)習(xí)啦。

新的上班時(shí)間是周二至周六,工作之余當(dāng)然要堅(jiān)持學(xué)習(xí)啦。

希望這篇文章能解決你這樣一個(gè)問(wèn)題:“我現(xiàn)在已經(jīng)下載好Node.Js了,該做些什么呢?”

原文URL:http://blog.modulus.io/absolute-beginners-guide-to-nodejs

本文的組成:上文的翻譯以及小部分自己的理解。所有文章中提到的JS代碼,都是經(jīng)過(guò)測(cè)試,可運(yùn)行并產(chǎn)生正確結(jié)果的。

What is Node.js?

關(guān)于Node.Js,要注意一點(diǎn):Node.js本身并不是像IIS,Apache一樣的webserver,它是一個(gè)JavaScript 的運(yùn)行環(huán)境。當(dāng)我們需要搭建一個(gè)HTTP 服務(wù)器的時(shí)候,我們可以借助Node.Js提供的庫(kù)快捷的寫一個(gè)。

Installing Node

Node.js 安裝是非常方便的,如果你在用Windows or Mac,去這個(gè)頁(yè)面就可以了download page.

I've Installed Node, now what?

   以WINDOWS為例,一旦安裝好Node.Js之后,可以通過(guò)兩種不同方式來(lái)調(diào)用Node。

   方式一:CMD 下輸入node,進(jìn)入交互模式,輸入一行行的JS代碼,Node.Js會(huì)執(zhí)行并返回結(jié)果,例子:

  1. $ node 
  2. > console.log('Hello World'); 
  3. Hello World 
  4. undefined 

   PS:上一個(gè)例子的undefined來(lái)自于console.log的返回值。

    方式二:CMD 下輸入node 文件名(當(dāng)然需要先CD到該目錄)。例子:

 

  1. hello.js 下的代碼: 
  2. console.log('Hello World'); 
  3. $ node hello.js 
  4. Hello World 

 

 

Doing Something Useful - File I/O

    使用純粹的Js原生代碼是有趣但是不利于工程開(kāi)發(fā)的,Node.JS提供了一些有用的庫(kù)(modules),下面是一個(gè)使用Node.js提供的庫(kù)分析文件的例子:

 

  1. example_log.txt 
  2. 2013-08-09T13:50:33.166Z A 2 
  3. 2013-08-09T13:51:33.166Z B 1 
  4. 2013-08-09T13:52:33.166Z C 6 
  5. 2013-08-09T13:53:33.166Z B 8 
  6. 2013-08-09T13:54:33.166Z B 5 

 

    我們做的***件事情是讀出該文件的所有內(nèi)容。

 

  1. my_parser.js 
  2.  
  3. // Load the fs (filesystem) module 
  4. var fs = require('fs'); 
  5.  
  6. // Read the contents of the file into memory. 
  7. fs.readFile('example_log.txt', function (err, logData) { 
  8.    
  9. // If an error occurred, throwing it will 
  10.   // display the exception and end our app. 
  11.   if (err) throw err; 
  12.    
  13. // logData is a Buffer, convert to string. 
  14.   var text = logData.toString(); 
  15. }); 

 

     filesystem (fs 的API ref) module 提供了一個(gè)可以異步讀取文件并且結(jié)束后執(zhí)行回調(diào)的函數(shù),內(nèi)容以 Buffer的形式返回(一個(gè)byte數(shù)組),我們可以調(diào)用toString() 函數(shù),將它轉(zhuǎn)換成字符串。

     現(xiàn)在我們?cè)賮?lái)添加解析部分的代碼。

 

  1. my_parser.js 
  2.  
  3. // Load the fs (filesystem) module. 
  4. var fs = require('fs');//  
  5.  
  6. // Read the contents of the file into memory. 
  7. fs.readFile('example_log.txt', function (err, logData) { 
  8.    
  9. // If an error occurred, throwing it will 
  10.   // display the exception and kill our app. 
  11.   if (err) throw err; 
  12.    
  13. // logData is a Buffer, convert to string. 
  14.   var text = logData.toString(); 
  15.    
  16. var results = {}; 
  17.  
  18. // Break up the file into lines. 
  19.   var lines = text.split('\n'); 
  20.    
  21. lines.forEach(function(line) { 
  22.     var parts = line.split(' '); 
  23.     var letter = parts[1]; 
  24.     var count = parseInt(parts[2]); 
  25.      
  26. if(!results[letter]) { 
  27.       results[letter] = 0
  28.     } 
  29.      
  30. results[letter] += parseInt(count); 
  31.   }); 
  32.    
  33. console.log(results); 
  34.   // { A: 2, B: 14, C: 6 } 
  35. }); 

 

Asynchronous Callbacks

    剛才的例子中使用到了異步回調(diào),這在Node.Js編碼中是廣泛被使用的,究其原因是因?yàn)镹ode.Js是單線程的(可以通過(guò)某些特殊手段變?yōu)槎嗑€程,但一般真的不需要這么做)。故而需要各種非阻塞式的操作。

    這種非阻塞式的操作有一個(gè)非常大的優(yōu)點(diǎn):比起每一個(gè)請(qǐng)求都創(chuàng)建一個(gè)線程的Web Server。Node.Js在高并發(fā)的情況下,負(fù)載是小得多的。

Doing Something Useful - HTTP Server

    我們來(lái)運(yùn)行一個(gè)HTTP server吧, 直接復(fù)制 Node.js homepage.上的代碼就可以了。

 

  1. my_web_server.js 
  2.  
  3.     var http = require('http'); 
  4.  
  5.     http.createServer(function (req, res) { 
  6.       res.writeHead(200, {'Content-Type''text/plain'}); 
  7.       res.end('Hello World\n'); 
  8.     }).listen(8080); 
  9.  
  10.     console.log('Server running on port 8080.'); 

 

    運(yùn)行以上代碼之后就可以訪問(wèn)http://localhost:8080 就能看到結(jié)果啦。

    上面的例子顯然過(guò)于簡(jiǎn)單,如果我們需要建立一個(gè)真正的web server。我們需要能夠檢查什么正在被請(qǐng)求,渲染合適的文件,并返回。而好消息是,Express已經(jīng)做到這一點(diǎn)了。

Doing Something Useful - Express

    Express 是一個(gè)可以簡(jiǎn)化開(kāi)發(fā)的框架。我們執(zhí)行npm install 來(lái)安裝這個(gè)package。

$ cd /my/app/location
$ npm install express

    指令執(zhí)行完畢后,Express相關(guān)的文件會(huì)被放到應(yīng)用目錄下的node_modules文件夾中。下面是一個(gè)使用Express開(kāi)發(fā)的例子:

 

  1. my_static_file_server.js 
  2.  
  3. var express = require('express'), 
  4.     app = express(); 
  5.  
  6.  
  7.  
  8. app.use(express.static(__dirname + '/public')); 
  9.  
  10. app.listen(8080); 
  11.  
  12. $ node my_static_file_server.js 

 

    這樣就建立了一個(gè)文件服務(wù)器。入油鍋我們?cè)?/public 文件夾放了一個(gè)"my_image.png" 。我們就可以在瀏覽器輸入http://localhost:8080/my_image.png 來(lái)獲取這個(gè)圖片. 當(dāng)然,Express 還提供了非常多的其它功能。

Code Organization

    剛才的例子中我們使用的都是單個(gè)文件,而實(shí)際的開(kāi)發(fā)中,我們會(huì)設(shè)計(jì)到代碼如何組織的問(wèn)題。

    我們?cè)囍鴮⒆铋_(kāi)始的文字解析程序重新組織。

 

  1. parser.js 
  2.  
  3. // Parser constructor. 
  4. var Parser = function() { 
  5.  
  6. }; 
  7.  
  8. // Parses the specified text. 
  9. Parser.prototype.parse = function(text) { 
  10.    
  11. var results = {}; 
  12.    
  13. // Break up the file into lines. 
  14.   var lines = text.split('\n'); 
  15.    
  16. lines.forEach(function(line) { 
  17.     var parts = line.split(' '); 
  18.     var letter = parts[1]; 
  19.     var count = parseInt(parts[2]); 
  20.      
  21. if(!results[letter]) { 
  22.       results[letter] = 0
  23.     } 
  24.      
  25. results[letter] += parseInt(count); 
  26.   }); 
  27.    
  28. return results; 
  29. }; 
  30.  
  31. // Export the Parser constructor from this module. 
  32. module.exports = Parser; 

 

   關(guān)于這里的exports 的含義請(qǐng)參考我的博客:Node.Js學(xué)習(xí)01: Module System 以及一些常用Node Module.

  1. my_parser.js 
  2.  
  3. // Require my new parser.js file. 
  4. var Parser = require('./parser'); 
  5.  
  6. // Load the fs (filesystem) module. 
  7. var fs = require('fs'); 
  8.  
  9. // Read the contents of the file into memory. 
  10. fs.readFile('example_log.txt', function (err, logData) { 
  11.    
  12. // If an error occurred, throwing it will 
  13.   // display the exception and kill our app. 
  14.   if (err) throw err; 
  15.    
  16. // logData is a Buffer, convert to string. 
  17.   var text = logData.toString(); 
  18.    
  19. // Create an instance of the Parser object. 
  20.   var parser = new Parser(); 
  21.    
  22. // Call the parse function. 
  23.   console.log(parser.parse(text)); 
  24.   // { A: 2, B: 14, C: 6 } 
  25. }); 

    這樣,文字解析的部分就被抽離了出來(lái)。

Summary

    Node.js 是強(qiáng)大而靈活的。

 

 

 
責(zé)任編輯:王雪燕 來(lái)源: 博客園
相關(guān)推薦

2010-08-26 15:47:09

vsftpd安裝

2022-04-24 15:21:01

MarkdownHTML

2024-04-28 10:56:34

Next.jsWeb應(yīng)用搜索引擎優(yōu)化

2019-03-29 16:40:02

Node.js多線程前端

2013-12-20 14:47:23

ember.js

2010-06-13 11:13:38

UML初學(xué)者指南

2022-07-22 13:14:57

TypeScript指南

2022-10-10 15:28:45

負(fù)載均衡

2023-07-28 07:31:52

JavaScriptasyncawait

2021-05-10 08:50:32

網(wǎng)絡(luò)管理網(wǎng)絡(luò)網(wǎng)絡(luò)性能

2023-07-03 15:05:07

預(yù)測(cè)分析大數(shù)據(jù)

2022-03-28 09:52:42

JavaScript語(yǔ)言

2020-06-03 10:00:30

Kubernetes容器開(kāi)發(fā)

2022-09-05 15:36:39

Linux日志記錄syslogd

2018-10-28 16:14:55

Reactreact.js前端

2023-02-10 08:37:28

2012-03-14 10:56:23

web app

2021-05-06 09:00:00

JavaScript靜態(tài)代碼開(kāi)發(fā)

2024-12-25 08:00:00

機(jī)器學(xué)習(xí)ML管道人工智能

2014-04-01 10:20:00

開(kāi)源Rails
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一区二区三区成人| 国产亚洲精品成人| 一级黄色片免费| 女仆av观看一区| 久久 天天综合| 国产视频精品在线| 国产成人一区二区三区别| 中文字幕一区二区久久人妻| 美女福利一区| 亚洲mv在线观看| 国产精品乱码| 欧美精品久久久久性色| 国产精品一区免费在线| 最近日韩中文字幕| 91精品国产综合久久香蕉最新版 | 日韩大尺度黄色| av高清不卡在线| 欧美高清视频在线播放| 日本特黄在线观看| 成人午夜在线影视| 日韩av专区| 欧美日韩一区二区三区在线看 | 17c精品麻豆一区二区免费| 国内视频一区二区| 久久国产精品波多野结衣av| 国产精品手机在线播放 | 久久久久久免费网| 欧美一级在线播放| 中文字幕在线看高清电影| 性孕妇free特大另类| 91欧美激情一区二区三区成人| 68精品久久久久久欧美| 亚洲熟女乱综合一区二区三区| 阿v视频在线观看| 91视频观看免费| 亚洲一区二区三区视频| 欧美xxxx黑人xyx性爽| 亚洲一区二区三区四区电影| 香蕉成人啪国产精品视频综合网| 麻豆中文字幕在线观看| xxxwww在线观看| 伊人影院久久| 亚洲网站视频福利| 久久黄色片网站| 羞羞视频在线免费国产| zzijzzij亚洲日本少妇熟睡| 91亚洲永久免费精品| 国产中文字字幕乱码无限| 日韩欧美黄色| 7777精品伊人久久久大香线蕉完整版| 51xx午夜影福利| 色屁屁草草影院ccyycom| 久久aⅴ国产紧身牛仔裤| 中文字幕亚洲综合久久| 国模大尺度视频| 性欧美又大又长又硬| 午夜电影网一区| 3d动漫一区二区三区| 搞黄视频免费在线观看| 激情国产一区二区| 97欧美精品一区二区三区| 免费看91的网站| 99这里只有精品视频| 在线免费观看视频一区| 麻豆传媒网站在线观看| av网址在线看| av不卡免费电影| 国产在线一区二区三区欧美 | 午夜激情成人网| 国产精品久久久久久久蜜臀| 国产精品永久免费观看| 久久免费精彩视频| 激情综合视频| 91av在线看| 中文字幕天堂在线| 影音国产精品| 日本不卡视频在线播放| 欧美日韩大片在线观看| 亚洲经典在线看| 久久精品中文字幕免费mv| 性色av蜜臀av色欲av| 精品成人18| 欧美色偷偷大香| 182午夜视频| 天天综合网天天| 欧美日韩亚洲不卡| 日韩av成人网| 麻豆国产精品| 亚洲精品美女网站| 国产xxxxhd| 狼人精品一区二区三区在线| 精品视频在线导航| 一本在线免费视频| 九九久久成人| 亚洲精品短视频| 中文字幕一区二区三区人妻在线视频| 福利在线一区| 欧美成人猛片aaaaaaa| mm131国产精品| 一区二区视频免费完整版观看| 欧美色综合影院| 国产香蕉精品视频| 深夜福利一区二区三区| 欧美日韩精品欧美日韩精品| 欧美黄色一级片视频| 午夜不卡影院| 欧美一区二区三区免费大片 | 欧美精品一区二区三区蜜桃| 亚洲另类第一页| 果冻天美麻豆一区二区国产| 在线视频中文亚洲| 日本熟伦人妇xxxx| 在线观看一区| 成人精品视频久久久久| 97国产成人无码精品久久久| 99re在线视频这里只有精品| 精品视频导航| 亚洲 欧美 激情 另类| 波波电影院一区二区三区| 国产精品一 二 三| 无遮挡的视频在线观看 | 欧美色图亚洲自拍| 亚洲AV成人无码一二三区在线| 国产精品久久久久影院老司| 中文字幕日本最新乱码视频| 大胆人体一区| 欧美日韩在线综合| aa片在线观看视频在线播放| 牛夜精品久久久久久久99黑人| 欧美精品一区三区| 麻豆亚洲av熟女国产一区二| 久久激情综合网| 亚洲999一在线观看www| 高清国产福利在线观看| 狠狠躁18三区二区一区| 日韩av播放器| 亚洲宅男一区| 日韩一区在线视频| 看片网站在线观看| 久99久精品视频免费观看| 日本免费高清一区| 免费在线看a| 亚洲一卡二卡三卡四卡| 男人天堂999| 任你弄精品视频免费观看| 欧美精品国产精品日韩精品| 黄色在线视频网址| 麻豆成人久久精品二区三区小说| 久久亚洲免费| 国内外激情在线| 亚洲一区在线观看免费| 久久久久中文字幕亚洲精品 | 插插插亚洲综合网| 国产午夜激情视频| 成人av一区二区三区| 欧日韩免费视频| 91在线成人| 欧美r级在线观看| 精品少妇久久久| 99久久精品国产一区二区三区 | 性欧美疯狂猛交69hd| 国自产拍偷拍福利精品免费一 | 久久91视频| 全部av―极品视觉盛宴亚洲| 成人黄色片网站| av网站无病毒在线| 一个色妞综合视频在线观看| 日本中文字幕精品| 亚洲视频碰碰| 欧美激情专区| 成人a在线观看高清电影| 国产一区二区三区在线观看网站| 99成人在线观看| 欧美一区=区| 成人一区二区三区四区| 风间由美一区| 欧美乱妇15p| 亚洲午夜精品久久久久久高潮| 久久亚洲欧美| 国产一区高清视频| 日韩免费电影| 久久久国产91| 天天干天天爱天天操| 91福利社在线观看| www.男人天堂| 伊人成综合网| 国产一区在线播放| gogogogo高清视频在线| 日韩欧美国产三级电影视频| 操她视频在线观看| 秋霞电影网一区二区| 色爽爽爽爽爽爽爽爽| 99riav视频一区二区| 欧美老少做受xxxx高潮| 国产又大又黑又粗| 国产精品三级在线观看| 9191在线视频| 日韩二区三区在线观看| 开心色怡人综合网站| 久久精品超碰| 97碰碰碰免费色视频| 日本在线视频站| 亚洲精品美女久久久久| 97caocao| 色综合久久99| 色婷婷在线影院| 国产精品1024| 91亚洲精品国产| 成人在线免费观看91| 国产精品久久久999| 欧美大片aaa| 日韩欧美精品在线观看| 无码熟妇人妻av| 久久精品男女| 精品人妻少妇一区二区| 天天揉久久久久亚洲精品| 91精品视频免费| 国模套图日韩精品一区二区| 欧美激情高清视频| 毛片在线播放a| 一区二区在线视频| 亚洲日本在线播放| 欧美成人精品二区三区99精品| 欧美激情一区二区三区免费观看| 中文在线一区二区| 精品亚洲视频在线| 日韩成人伦理电影在线观看| 欧美 日韩 国产在线观看| 亚洲精品白浆高清| 懂色一区二区三区av片| 未满十八勿进黄网站一区不卡| 久久精品国产精品亚洲| 黄色国产在线| 91麻豆精品国产91久久久| 国产又粗又猛又黄视频| 最新日韩av在线| 久久午夜精品视频| 国产一区二区福利视频| av在线播放亚洲| 欧美精品国产| 日本一区二区三不卡| 精品综合久久88少妇激情| 成人动漫视频在线观看完整版| 国产传媒av在线| 欧美激情第1页| 国产探花视频在线观看| 亚洲人a成www在线影院| 91丨九色丨蝌蚪丨对白| 欧美亚洲综合另类| 可以直接看的黄色网址| 成人综合婷婷国产精品久久蜜臀| 久久婷婷五月综合色国产香蕉| 国产欧美短视频| 亚洲一区二区在| 欧美调教网站| 精品国产一区二区三区四区精华| 久久久久高潮毛片免费全部播放| 国产一区免费观看| 日韩高清电影免费| 噜噜噜噜噜久久久久久91| 欧美美女在线观看| 日韩精品成人一区二区在线观看| 日本一区二区乱| 国产98在线|日韩| 久久97久久97精品免视看秋霞| 久久久久久久久久久久久久一区| 国产精品亚洲欧美日韩一区在线| 成人午夜在线视频一区| 欧美中文高清| 九九九热999| 精品国精品国产自在久国产应用| 国产 高清 精品 在线 a| 国产成人福利av| 久久久精品国产一区二区三区| 九九热线有精品视频99| 色一情一乱一伦一区二区三欧美 | 99精品热6080yy久久| 亚洲一区二区三区色| 国产精品毛片一区二区在线看| 路边理发店露脸熟妇泻火| 99精品国产在热久久婷婷| 激情五月亚洲色图| 国产精品一国产精品k频道56| 国产天堂在线播放| 国产伦精一区二区三区| 日韩大片一区二区| 久久青草久久| 久久久精品高清| 成人手机在线视频| 亚洲理论片在线观看| 成人免费观看男女羞羞视频| 久久久久久婷婷| 国产成人精品www牛牛影视| 国产精品视频分类| 精品一二线国产| 人妻熟女aⅴ一区二区三区汇编| 国产精品国产自产拍高清av| 欧美日韩中文视频| 欧美日韩日日骚| 特级丰满少妇一级aaaa爱毛片| 日韩一区二区av| 中文字幕在线直播| 91观看网站| 精品午夜av| 欧美日韩国产不卡在线看| 天天天综合网| 亚洲少妇第一页| 蜜臀va亚洲va欧美va天堂| 91香蕉视频污版| caoporm超碰国产精品| 小嫩苞一区二区三区| 日韩欧美在线一区| 午夜老司机福利| 日韩一区视频在线| 欧美色网在线| 国产一区二区在线观看免费播放| 久久久久免费av| 欧洲精品视频在线| 久久亚洲电影| 国产黄色三级网站| 亚洲欧美日本韩国| 青青草原免费观看| 欧美日韩国产综合视频在线观看| 你懂的免费在线观看视频网站| 欧美精品久久久久久久免费观看| 电影中文字幕一区二区| 日韩精品久久一区| 亚洲专区一区| 中文字幕 亚洲一区| 亚洲综合色区另类av| 国产成人三级在线播放| 337p日本欧洲亚洲大胆精品| 国产福利在线播放麻豆| 国产精品美女主播| 韩国三级成人在线| 亚洲欧洲精品在线 | www国产精品com| 桃子视频成人app| 秋霞毛片久久久久久久久| 国产精品久久久久9999高清| 日韩Av无码精品| 亚洲综合色自拍一区| 成人久久精品人妻一区二区三区| 亚洲精品美女久久久久| 97天天综合网| 国产精品视频地址| 成人在线免费观看网站| 午夜免费高清视频| 欧美激情一区二区三区不卡| 久久老司机精品视频| 欧美大片一区二区| 四虎影院观看视频在线观看| yellow视频在线观看一区二区| 亚洲欧洲中文字幕| 欧美熟妇另类久久久久久多毛| 亚洲欧美激情小说另类| 国内精品国产成人国产三级| 欧美国产日韩在线| 粉嫩久久久久久久极品| 久久99中文字幕| 久久综合狠狠综合| 日韩激情综合网| 欧美一区二区高清| 国产探花在线观看| 欧美日韩国产一二| 美国三级日本三级久久99| 日本成人精品视频| 欧美一区永久视频免费观看| 日本h片在线| 国产精自产拍久久久久久| 97久久夜色精品国产| 免费在线观看毛片网站| 中文字幕不卡在线观看| 国产成人精品a视频| 久久免费视频网| 国内不卡的一区二区三区中文字幕| 黄色一级视频播放| 从欧美一区二区三区| 久久精品五月天| 操日韩av在线电影| 天天久久夜夜| 中文字幕亚洲乱码| 亚洲国产成人av网| 国产视频第一页| 中文字幕亚洲一区| 亚洲码欧美码一区二区三区| 成人毛片视频网站| 中文字幕中文字幕一区二区| 高潮毛片7777777毛片| 日韩美女在线观看一区| 欧美日韩一区二区三区四区不卡| 国产精品无码av无码| 亚洲欧美一区二区三区孕妇| 中文字幕在线播放不卡| 欧美富婆性猛交| 久草精品在线| 久久久久久久久久久影视| 欧美性猛交xxxx乱大交3| 国产91在线视频蝌蚪| 欧美激情视频一区二区三区|