精品欧美一区二区三区在线观看 _久久久久国色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)

99热99这里只有精品| 精品久久蜜桃| 日韩激情小视频| 日韩精品中文字幕一区二区| 亚洲国产欧美日韩另类综合| 蜜桃麻豆91| 91久久精品无码一区二区| 激情久久婷婷| 在线精品高清中文字幕| 国产成人av免费观看| 国产不卡网站| 亚洲黄色免费网站| 奇米影视首页 狠狠色丁香婷婷久久综合 | jlzzjlzz亚洲日本少妇| 国产精品久久久久久久久久ktv| 婷婷在线精品视频| 欧美伦理在线视频| 亚洲电影中文字幕| 成人日韩在线视频| 三区四区电影在线观看| 污污网站在线看| 国产成人综合网站| 国产精品视频地址| 国产精品视频123| 激情 小说 亚洲 图片: 伦| 国产精品天天操| 久久综合伊人| 97av在线视频| 欧美成人精品一区二区免费看片 | 精品国产乱码久久久久久闺蜜 | 中文字幕av一区二区三区谷原希美| 亚洲美女精品视频| 国产精品一区二区三区四区在线观看 | 无码任你躁久久久久久久| 欧美日韩一卡| 欧美成人合集magnet| 貂蝉被到爽流白浆在线观看 | 亚洲人一区二区| 国产一精品一aⅴ一免费| 欧洲亚洲妇女av| 天天综合色天天综合色h| 国产精品一区毛片| 九九国产精品视频| 欧美一区二区三区四区在线| 超碰在线免费观看97| 一级黄色av片| 午夜亚洲激情| 51精品在线观看| 国产精品18p| 成人黄色大片网站| 日韩大片免费在线观看| 欧美 日韩 国产 一区| 日韩在线播放一区| 国产又黄又粗又猛又爽的| 欧美艳星介绍134位艳星| 国产小视频国产精品| 一区二区三区四区免费| 免费看成人吃奶视频在线| 日韩成人在线免费观看| 日本人添下边视频免费| 欧美天堂社区| 亚洲人成电影在线播放| 蜜臀久久99精品久久久久久| 国产精品亚洲人成在99www| 亚洲最新视频在线| 国产白丝一区二区三区| 婷婷中文字幕一区| 久99九色视频在线观看| 国产在线综合网| 99成人免费视频| 国产精品pans私拍| 国产精品传媒在线观看| 精品综合久久久久久8888| 91免费版黄色| 午夜性色福利视频| 国产日韩欧美一区二区三区乱码 | 亚洲mv大片欧洲mv大片精品| 国内性生活视频| 日韩毛片在线| 日韩欧美一级片| avtt香蕉久久| 爽成人777777婷婷| 久久久久久91| 国产成人av免费| 极品美女销魂一区二区三区| 国产精品对白一区二区三区| 亚洲欧美日韩动漫| 日韩一区欧美小说| 男人添女人下面高潮视频| 成人一级视频| 精品sm捆绑视频| 国产精品天天干| 欧美日韩国产亚洲一区| 欧美中文字幕第一页| 在线免费一级片| 懂色av一区二区三区免费观看| 蜜桃日韩视频| 性xxxxfjsxxxxx欧美| 精品久久久久久| 国产一级片自拍| 激情视频极品美女日韩| 日韩在线中文字| 91av在线免费视频| 韩国精品久久久| 欧美日韩亚洲在线| 青草在线视频| 欧美在线观看视频一区二区三区| 91亚洲一线产区二线产区| 狠狠做六月爱婷婷综合aⅴ | 亚洲成年人专区| 国产美女高潮在线观看| 这里是久久伊人| 国产三级精品在线不卡| 少妇精品无码一区二区| 精品国精品国产自在久国产应用 | 日韩欧美一区二区三区四区| 丝袜中文在线| 欧美日韩成人综合天天影院| 成人h动漫精品一区| 欧美三级视频| 亚洲永久在线观看| 五月香视频在线观看| 日韩欧美在线网址| 少妇激情一区二区三区视频| 自拍偷拍欧美专区| 国产乱肥老妇国产一区二| 日本一卡二卡四卡精品| 亚洲国产视频在线| 毛片毛片毛片毛片毛| 日韩欧美午夜| 国产精品一区二区久久久| 欧美男男同志| 欧美日韩一区二区在线播放| 国产综合内射日韩久| 综合在线视频| 91精品视频大全| 免费在线毛片网站| 欧美色网一区二区| 中文字幕第二区| 日韩中文字幕一区二区三区| 欧美美乳视频网站在线观看| 丁香花电影在线观看完整版| 日韩精品影音先锋| 欧美精品成人久久| 国产91丝袜在线播放九色| 青青草视频国产| 亚洲亚洲一区二区三区| 欧美精品在线观看91| 国产成人毛毛毛片| 亚洲国产精品一区二区www| 深夜视频在线观看| 艳女tv在线观看国产一区| 91精品啪aⅴ在线观看国产| 50度灰在线| 欧美大胆人体bbbb| 男人天堂中文字幕| www国产精品av| 三级4级全黄60分钟| 精品美女久久久| 国产精品色悠悠| 国产激情在线| 精品福利一区二区三区免费视频| 国产精品6666| 国产欧美综合在线| 九色porny自拍| 亚洲最新色图| 精品一区二区三区视频日产| 欧美一级大片| 久久精品中文字幕| 人妻中文字幕一区| 日韩欧美在线视频日韩欧美在线视频| 国产女主播喷水高潮网红在线| 日韩国产欧美视频| 在线视频一二三区| 国产精品极品在线观看| 欧美亚洲日本黄色| 69视频在线观看| 精品日产卡一卡二卡麻豆| 久久一区二区三区视频| 国产精品久久久久久福利一牛影视 | 欧美成人综合网站| 国产成人愉拍精品久久| 中文字幕欧美国产| 日本少妇xxx| 久久精品女人天堂| 99亚洲精品视频| 欧美黄色录像| 成人网页在线免费观看| 蜜桃av.网站在线观看| 最近中文字幕2019免费| 丰满大乳国产精品| 在线观看视频一区二区| 欧美极品视频在线观看| 国产欧美综合色| 亚洲av成人精品一区二区三区| 老司机精品导航| 国产精品三级一区二区| 激情婷婷综合| 国产精品麻豆免费版| 色成人综合网| 欧洲s码亚洲m码精品一区| 成人福利在线观看视频| 一区二区三区四区精品| 欧洲成人一区二区三区| 欧美日韩高清在线播放| 日本中文字幕在线| 一区二区三区蜜桃网| www.黄色在线| 97久久久精品综合88久久| 女人高潮一级片| 噜噜噜躁狠狠躁狠狠精品视频| 大地资源网在线观看免费官网| 国产欧美日韩一区二区三区四区| av日韩免费电影| 亚洲国产91视频| 国产精品9999| 裤袜国产欧美精品一区| 久久久久久免费精品| 国精产品一区| 这里只有视频精品| 日本天堂影院在线视频| 欧美一级淫片007| ,亚洲人成毛片在线播放| 在线日韩一区二区| 国产91精品看黄网站在线观看| 亚洲综合免费观看高清完整版| 国产精品视频看看| 国产日韩精品久久久| 亚洲熟妇一区二区三区| 91一区在线观看| 亚洲色偷偷色噜噜狠狠99网| 国产寡妇亲子伦一区二区| 日本在线播放一区二区| 久久精品国产秦先生| 欧美日韩大尺度| 久久成人国产| 不卡影院一区二区| 亚洲免费网站| 成年人免费大片| 天堂精品中文字幕在线| 黄色片一级视频| 西西人体一区二区| 成人羞羞国产免费网站| 久久精品国语| 日韩在线观看免费高清完整版| 国产伦视频一区二区三区| 99久久免费看精品国产一区| 国模吧精品人体gogo| 日韩一区电影| 亚洲一区免费在线观看| 女教师淫辱の教室蜜臀av软件| 国产日韩欧美在线一区| 伊人影院综合网| 国产精品天美传媒| 国产日产精品一区二区三区的介绍| 国产精品嫩草99a| 网站永久看片免费| 亚洲视频一区二区免费在线观看| 小早川怜子一区二区的演员表| 综合久久给合久久狠狠狠97色| 九九热最新地址| 一个色综合网站| 日韩精品手机在线| 日韩欧美成人网| 亚洲国产无线乱码在线观看| 91精品久久久久久久99蜜桃| 精品久久国产视频| 亚洲精品国精品久久99热| 久久久久日韩精品久久久男男| 五月婷婷深深爱| 亚洲天堂2020| seseavlu视频在线| 欧美成人精品一区| 狼人综合视频| 国产精品免费视频xxxx| 91精品国产自产观看在线| 国产成人成网站在线播放青青| 欧美久久香蕉| 一本一道久久久a久久久精品91 | 日本少妇激情舌吻| 色综合激情五月| 国产男女裸体做爰爽爽| 亚洲高清免费观看高清完整版| 久久电影视频| 欧美大奶子在线| 天天综合网站| 99电影网电视剧在线观看| 亚洲欧美日本伦理| 天堂v在线视频| 一本色道久久综合亚洲精品不卡 | 亚洲色图都市激情| 亚洲在线黄色| √天堂资源在线| 久久中文字幕电影| 福利所第一导航| 在线日韩一区二区| 色呦呦中文字幕| 日韩中文字幕网址| 色综合桃花网| 91高跟黑色丝袜呻吟在线观看| 自拍自偷一区二区三区| 日本aa在线观看| 蜜桃在线一区二区三区| 国产亚洲色婷婷久久99精品91| 亚洲欧美视频一区| 高潮毛片又色又爽免费| 精品久久人人做人人爱| 在线中文资源天堂| 青草热久免费精品视频| 亚洲日本va| 男女啪啪的视频| 蜜桃精品视频在线| 国产黄色网址在线观看| 亚洲综合色成人| 亚洲一区中文字幕在线| 亚洲欧美国产精品| 成人免费图片免费观看| 5566av亚洲| 国产精品国产一区| 天天碰免费视频| 久久综合九色综合97婷婷女人 | 欧美黄色一级生活片| 亚洲v日本v欧美v久久精品| 午夜美女福利视频| 麻豆国产精品va在线观看不卡| 欧美日韩激情电影| 欧美日韩国产免费一区二区三区| 尤物在线精品| 岛国精品一区二区三区| 亚洲精品成a人| 国产精品欧美激情在线| 久久精品国产v日韩v亚洲| 九九热这里有精品| 亚洲乱码国产乱码精品天美传媒| 久久久蜜桃一区二区人| 女人被狂躁c到高潮| 婷婷丁香激情综合| 日批免费在线观看| 久久久久久国产精品美女| 天堂va在线高清一区| 久久精品在线免费视频| 国产美女精品人人做人人爽| 成年人二级毛片| 91精品综合久久久久久| 五月婷婷在线视频| 91在线视频免费| 亚洲综合色网| av电影中文字幕| 一区二区三区在线视频播放| 成人免费视频国产免费麻豆| 97久久精品人人澡人人爽缅北| 国产三级精品三级在线观看国产| 国产精品www在线观看| 99热精品一区二区| 特级西西444www大精品视频免费看| 日韩av中文字幕在线免费观看| 丝袜老师在线| 你懂的网址一区二区三区| 天堂精品中文字幕在线| 老司机精品免费视频| 欧美一区二区三区不卡| 国产又色又爽又黄刺激在线视频| 成人蜜桃视频| 免费在线播放第一区高清av| 亚洲码无人客一区二区三区| 欧美日韩一区小说| 宅男网站在线免费观看| 国产日韩一区欧美| 日韩黄色在线观看| 9999热视频| 亚洲成人网av| 制服诱惑亚洲| 欧美爱爱视频网站| 波多野洁衣一区| 波多野结衣大片| 久久在精品线影院精品国产| 国产亚洲成av人片在线观黄桃| 国产裸体舞一区二区三区| 中文字幕一区二区视频| 粉嫩小泬无遮挡久久久久久| 国产脚交av在线一区二区| 亚洲人体av| 亚洲欧美日本一区| 6080亚洲精品一区二区| 国产在线美女| 亚洲最大免费| 99久久久免费精品国产一区二区 | 日韩欧美视频在线| 毛片无码国产| 日本福利视频在线观看| 久久免费美女视频| 精品人妻一区二区三区日产乱码 | 91动漫在线看| 2017欧美狠狠色| 国产美女明星三级做爰| 欧美洲成人男女午夜视频| 99九九热只有国产精品| 久久无码人妻精品一区二区三区 | 天堂va欧美va亚洲va老司机| 在线免费av一区|