Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
node.js ³õÌåÑé
×÷ÕߣºÄô΢¶« À´Ô´£º²©¿Í ·¢²¼ÓÚ£º2016-7-5
  4466  次浏览      27
 

ÏȸãµãǰϷÈÈÈȳ¡ - ΪʲôдÕâÆªÎÄÕ£º

1.ǰ¶Îʱ¼äµ¥Î»ÓÐÐÂÏîÄ¿Æô¶¯£¬·þÎñ¶ËÒª×öµÄ¹¤×÷²»¶àÒ²²»ËãÂé·³£¬¾ÍÊÇ´¦ÀíһЩÖмä²ãµÄ·þÎñ£¬¶øÇÒÎÒÃÇÍŶÓÀïÃæ¸ö¸ö¶¼»áJavaScript£¬Áìµ¼¾Í¾ö¶¨ÊÔÊÔ·þÎñÆ÷¶ËµÄJavaScript£¬½á¹û±¾ÈËÓÐÐÒ±»ÅÉÈ¥Ñо¿Á˼¸ÌìNode£¬»³×ż¦¶³µÄÐÄÇ鿪ʼÁËnode.jsµÄƪÕ£¬ÕâÆªÎÄÕÂÒ²¾ÍÊÇΪÕ⼸ÌìÑо¿µÄ×ܽᡣ

2.Ò»¸öJavaScript¹¤³ÌʦÈç¹ûûÌý¹ýnode.jsÄÇôÎÒÏëÄãÊDz»ÊÇ´í¹ýÁËʲô£¬Ã¿¸öÓÅÐãµÄǰ¶Ë¹¤³Ìʦ¶¼ÓбØÒªÈ¥Á˽âºǫ́´¦ÀíÁ÷³Ì£¬ÄÇôÈç¹ûÓÖÄÜ´ÓJavaScript³ö·¢£¬Æñ²»ÊÇÒ»¼þºÜÃÀÃîµÄÊÂô¡£

3.»¥ÁªÍøµÄ»ðÈÈʹµÃJavaScript·ç¹âÎÞÏÞ£¬ÇÒ·þÎñ¶ËµÄJavaScriptÒ²²¢²»ÊÇʲôм¼ÊõÁË£¬Ïà¹ØµÄ¿ò¼ÜÒ²Óв»ÉÙ£¬Ö»ÊÇnode.jsµÄ³É¹¦ÈÃËû±¬·¢Ê½µÄ³öÏÖÔÚÎÒÃǵÄÊÓÏßÖУ¬Èúܶàǰ¶Ë¹¤³Ìʦ¿´µ½ÁË´Óǰ¶Ëдµ½ºó¶ËµÄÁíÒ»ÖÖʵÏÖÏ£Íû¡£×¢£ºnode.js ÊÇÒ»¸öÔÊÐí¿ª·¢ÈËԱʹÓà JavaScript ÓïÑÔ±àд·þÎñÆ÷¶Ë´úÂëµÄ¿ò¼Ü¡£

4.½ñÄê8ÔÂÔøÔÚij´ó¹«Ë¾×îºóÒ»ÂÖ(µÚÎåÂÖ)µÄÃæÊÔ±»Îʵ½Node.jsµÄÎÊÌ⣬Ïà¶ÔÓ¦µÄ»Ø´ðÄÇÊÇÏ൱֮Ôã¸â£¬½á¹ûÔõÑùÄãÃǶ®µÄ£¬¸Ð¾õÕâ¸öÎÊÌâÊǵ¼ÖÂûÓÐͨ¹ýµÄ¹Ø¼üµãÖ®Ò»...ÄǼҹ«Ë¾ÊÇÎÒÔÚ¶Á´óѧµÄʱºò¾ÍÎÞ±ÈÏòÍùµÄ¹«Ë¾£¬ÏÖÔÚ»ØÏëÆðÄǴξ­ÀúºÍ¹ý³Ì£¬Ì¸²»ÉÏÍïϧ£¬±Ï¾¹ÎÒÕæµÄ¾¡Á¦ÁË - ÆäʵÕâÆªÎÄÕ¸ü¶àµÄÒ²ÊÇΪÁËÍê³É×Ô¼ºÒ»¸öССµÄÐĽá...ºÃ°É£¬ÓÖ³¶Ô¶ÁË¡£

5.»¶Ó­¸÷ÖÖ×ªÔØ£¬²»¹ýÇë×¢Ã÷³ö´¦£¬Ð»Ð»¡£

NodeÊǸöɶ£¿

д¸ö¶«Î÷»¹ÊǾ¡Á¿ÃæÃæ¾ãµ½°É£¬ËùÒÔÓйػù±¾¸ÅÄîµÄ¶«Î÷ÎÒÒ²´ÓÍøÉÏÑ¡ÔñÐÔµÄÄÃÁËЩÏÂÀ´£¬ÓÐЩµØ·½Õë¶Ô×Ô¼ºµÄÀí½âÓÐËù¸Ä¶¯£¬¶ÔÕâЩ¸ÅÄîÐԵĶ«Î÷ÓйýÁ˽âµÄ¿ÉÑ¡ÔñÌø¹ýÕâ¶Î¡£

1.Node ÊÇÒ»¸ö·þÎñÆ÷¶Ë JavaScript ½âÊÍÆ÷£¬¿ÉÊÇÕæµÄÒÔΪJavaScript²»´íµÄͬѧѧϰNode¾ÍÄÜÇáËÉÄÃÏ£¬ÄÇôÄã¾Í´íÁË£¬×ܽ᣺ˮÉî²»ÉîÎÒ»¹²»ÖªµÀ£¬²»¹ýȷʵ²»Ç³¡£

2.Node µÄÄ¿±êÊǰïÖú³ÌÐòÔ±¹¹½¨¸ß¶È¿ÉÉìËõµÄÓ¦ÓóÌÐò£¬±àдÄܹ»´¦ÀíÊýÍòÌõͬʱÁ¬½Óµ½Ò»¸öÎïÀí»úµÄÁ¬½Ó´úÂë¡£´¦Àí¸ß²¢·¢ºÍÒì²½I/OÊÇNodeÊܵ½¿ª·¢ÈËÔ±µÄ¹Ø×¢µÄÔ­ÒòÖ®Ò»¡£

3.Node ±¾ÉíÔËÐÐGoogle V8 JavaScriptÒýÇæ£¬ËùÒÔËٶȺÍÐÔÄܷdz£ºÃ£¬¿´chrome¾ÍÖªµÀ£¬¶øÇÒNode¶ÔÆä·â×°µÄͬʱ»¹¸Ä½øÁËÆä´¦Àí¶þ½øÖÆÊý¾ÝµÄÄÜÁ¦¡£Òò´Ë£¬Node²»½ö½ö¼òµ¥µÄʹÓÃÁËV8£¬»¹¶ÔÆä½øÐÐÁËÓÅ»¯£¬Ê¹ÆäÔÚ¸÷ÖÖ»·¾³Ï¸ü¼Ó¸øÁ¦¡££¨Ê²Ã´ÊÇV8 JavaScript ÒýÇæ£¿Çë¡°°Ù¶ÈÖªµÀ¡±£©

4.µÚÈý·½µÄÀ©Õ¹ºÍÄ£¿éÔÚNodeµÄʹÓÃÖÐÆðµ½ÖØÒªµÄ×÷Óá£ÏÂÃæÒ²»á½éÉÜÏÂÔØnpm£¬npm¾ÍÊÇÄ£¿éµÄ¹ÜÀí¹¤¾ß£¬ÓÃËü°²×°¸÷ÖÖ Node µÄÈí¼þ°ü(Èçexpress£¬redisµÈ)²¢·¢²¼×Ô¼ºÎªNodeдµÄÈí¼þ°ü ¡£

°²×°Node

ÔÚÕâ¼òµ¥ËµËµÔÚwindow7ºÍlinuxÁ½ÖÖ»·¾³Ï°²×°Node¡£°²×°µÄʱºòÒ»¶¨Òª×¢ÒâPythonµÄ°æ±¾£¬¶à´ÎÒòΪPython°æ±¾µÄÎÊÌⰲװʧ°Ü£¬½¨Òé2.6+µÄ°æ±¾£¬µÍ°æ±¾»á³öÏÖNode°²×°´íÎ󣬲éѯPython°æ±¾¿ÉÔÚÖÕ¶ËÖÐÊäÈ룺pyhton -v

1.ÏȽéÉÜlinuxϵݲװ°É£¬NodeÔÚLinux»·¾³Ïµİ²×°ºÍʹÓö¼·Ç³£·½±ã£¬½¨ÒéÔÚLinuxÏÂÔËÐÐNode£¬^_^...ÎÒʹÓõÄÊÇUbuntu11.04

a.°²×°ÒÀÀµ°ü£º50-100kb/s´ó¸Åÿ¸ö°üÒ»·ÖÖÓ¾ÍÄÜÏÂÔØ°²×°Íê³É

sudo apt-get install g++ curl libssl-dev apache2-utils
¡¡¡¡sudo apt-get install git-core

b.ÔÚÖÕ¶ËÒ»²½²½ÔËÐÐÒ»ÏÂÃüÁ

git clone git://github.com/joyent/node.git
¡¡¡¡cd node
¡¡¡¡./configure
¡¡¡¡make
¡¡¡¡sudo make install

°²×°Ë³ÀûµÄ»°µ½ÕâÒ»²½Node¾ÍËã°²×°³É¹¦ÁË£¬2MµÄÍøÂçÓÃÁ˹²¼Æ12·ÖÖÓ¡£

×¢£ºÈç¹û²»ÓÃgitÏÂÔØÒ²¿ÉÒÔÖ±½ÓÏÂÔØÔ´Â룬²»¹ýÕâÑùÏÂÔØ°²×°ÐèҪעÒâNode°æ±¾ÎÊÌ⡣ʹÓÃgitÏÂÔØ°²×°ÊÇ×î·½±ãµÄ£¬ËùÒÔÍÆ¼öÖ®¡£

2.ÔÚWindowsÏÂʹÓÃCygwin°²×°Node£¬Õâ¸ö·½Ê½²»Ì«ÍƼö£¬ÒòÎªÕæµÄÐèÒª½Ï³¤Ê±¼äºÍ½ÏºÃµÄÈËÆ·¡£ÎÒµÄϵͳÊÇ win7Æì½¢°æ

CygwinÊÇÒ»¸öÔÚwindowsƽ̨ÉÏÔËÐеÄunixÄ£Äâ»·¾³£¬ÏÂÔØµØÖ·£ºhttp://cygwin.com/setup.exe¡£

ÏÂÔØºÃCygwinºó¿ªÊ¼°²×°£¬²½Ö裺

a.Ñ¡ÔñÏÂÔØµÄÀ´Ô´ - Install from Internet

b.Ñ¡ÔñÏÂÔØ°²×°µÄ¸ùĿ¼

c.Ñ¡ÔñÏÂÔØÎļþËù´æ·ÅµÄĿ¼

d.Ñ¡ÔñÁ¬½ÓµÄ·½Ê½

e.Ñ¡ÔñÏÂÔØµÄÍøÕ¾ - http://mirrors.163.com/cygwin

f.Âé·³¾ÍÂé·³ÔÚÕâ²½£¬¿¼ÑéÈËÆ·µÄʱºòµ½ÁË¡£ÐèÒªµÄÏÂÔØ°²×°Ê±¼ä²»È·¶¨£¬·´ÕýÐèÒª±È½Ï³¤µÄʱ¼ä(³¬¹ý20·ÖÖÓ)£¬Å¼¶û»á³öÏÖ°²×°Ê§°ÜµÄÇé¿ö¡£µ¥»÷һϸ÷¸ö³ÌÐò°üÇ°ÃæµÄÐýת¼ýͷͼ±êÑ¡ÔñÄãÏëÒªµÄ°æ±¾£¬Ñ¡ÖÐʱ»á³öÏÖÁË"x"ºÅ±íʾÒѾ­Ñ¡ÖÐÁ˸óÌÐò°ü¡£Ñ¡ÔñÐèÒªÏÂÔØµÄ³ÌÐò°ü£º

Devel°ü£º
¡¡¡¡¡¡¡¡gcc-g++: C++ compiler
¡¡¡¡¡¡¡¡gcc-mingw-g++: Mingw32 support headers and libraries for GCC C++
¡¡¡¡¡¡¡¡gcc4-g++: G++ subpackage
¡¡¡¡¡¡¡¡git: Fast Version Control System ¨C core files
¡¡¡¡¡¡¡¡make: The GNU version of the ¡®make¡¯ utility
¡¡¡¡¡¡¡¡openssl-devel: The OpenSSL development environment
¡¡¡¡¡¡¡¡pkg-config: A utility used to retrieve information about installed libraries
¡¡¡¡¡¡¡¡zlib-devel: The zlib compression/decompression library (development)
¡¡¡¡Editor°ü£ºvim: Vi IMproved ¨C enhanced vi editor
¡¡¡¡Python°ü£º°ÑDefaultÇл»³Éinstall״̬¼´¿É
¡¡¡¡Web°ü£º
¡¡¡¡¡¡¡¡wget: Utility to retrieve files from the WWW via HTTP and FTP
¡¡¡¡¡¡¡¡curl: Multi-protocol file transfer command-line tool

Éϸö½ØÍ¼£¬ÒÔÏÂÔØzlib-develΪÀý£º

ÆäÉϼ¸²½×ßÍê²ÅËã°Ñ»·¾³´î½¨Íê³É£¬¿ÉÊÇÏÖÔÚ»¹Ã»Óе½°²×°Node£¬»¹ÐèÒªÔÚCywginµÄASHģʽÏÂÖ´ÐÐrebaseall£¬²½ÖèÈçÏ£º

a. cmdÃüÁîÐÐ

b. ½øÈëcygwin°²×°Ä¿Â¼ÏµÄbin×ÓĿ¼

c. ÔËÐÐash½øÈëshellģʽ

d. ./rebaseall -v

e. ûÓдíÎó¾Í¹Ø±ÕÃüÁîÐд°¿Ú
¡¡¡¡ºÃÁË£¬ÏÖÔÚµ½ÏÂÔØ°²×°NodeÁË£¬Æô¶¯Cygwin.exeºóÊäÈ룺

$ wget http://nodejs.org/dist/node-v0.4.12.tar.gz
¡¡¡¡$ tar xf node-v0.4.12.tar.gz
¡¡¡¡$ cd node-v0.4.12
¡¡¡¡$ ./configure
¡¡¡¡$ make
¡¡¡¡$ make install

3.Ö±½ÓÏÂÔØnode.exeÎļþ

nodejs.orgÏÂÔØ½ÏÂýËùÒÔÎÒÔÚÍøÅÌÉÏ´«ÁËÒ»¸ö£¬ÏÂÔØµØÖ·£ºhttp://www.everbox.com/f/VhyL6EiGF5Lm3ZSRx85caFDIA5

Ìý˵Óв»Ì«Îȶ¨µÄÎÊÌ⣬²»¹ýÄã¼ÙÈçÖ»ÊÇÏëÏÈÔÚwindowsÏÂÁ˽âNode£¬¸öÈ˸оõÕâ¸ö·½·¨±ÈÄã×°¸öCygwinºÃºÜ¶à¡£

×¢£ºÔ­±¾²»Ì«Ïëд°²×°NodeÕâ¶Î£¬¿ÉÊÇΪÁËÕâÆªÎÄÕµÄÈ«ÃæÐÔ»¹ÊÇдÁË£¬Ã»Ï뵽һд¾ÍÊÇÄÇô³¤Ò»¶ÎÁË...²è¼¸ÁË

¡°Hello World¡± - Ϊʲôÿ´Î¼ûµ½Õâ¾äÐÄÇé¶¼»áС¼¤¶¯£¬²»½â...

Ê×ÏÈ£¬´´½¨¸öhello.jsµÄÎļþ£¬ÔÚÎļþÖÐcopyÈçÏ´úÂ룺

var http = require('http');
¡¡¡¡http.createServer(function (req, res) {
¡¡¡¡ res.writeHead(200, {'Content-Type': 'text/plain'});
¡¡¡¡ res.end('Hello World\n');
¡¡¡¡}).listen(1337, "127.0.0.1");
¡¡¡¡console.log('Server running at http://127.0.0.1:1337/');

´úÂëÂß¼­£º

a. È«¾Ö·½·¨require()ÊÇÓÃÀ´µ¼ÈëÄ£¿éµÄ£¬Ò»°ãÖ±½Ó°Ñ require() ·½·¨µÄ·µ»ØÖµ¸³Öµ¸øÒ»¸ö±äÁ¿£¬ÔÚ JavaScript ´úÂëÖÐÖ±½ÓʹÓô˱äÁ¿¼´¿É ¡£require("http") ¾ÍÊǼÓÔØÏµÍ³Ô¤ÖÃµÄ http Ä£¿é

b. http.createServer ÊÇÄ£¿éµÄ·½·¨£¬Ä¿µÄ¾ÍÊÇ´´½¨²¢·µ»ØÒ»¸öеÄweb server¶ÔÏ󣬲¢ÇÒ¸ø·þÎñ°ó¶¨Ò»¸ö»Øµ÷£¬ÓÃÒÔ´¦ÀíÇëÇó¡£

c. ͨ¹ý http.listen() ·½·¨¾Í¿ÉÒÔÈøà HTTP ·þÎñÆ÷ÔÚÌØ¶¨¶Ë¿Ú¼àÌý¡£

d. console.log¾Í²»Óöà˵ÁË£¬Á˽âfirebugµÄ¶¼Ó¦¸ÃÖªµÀ£¬NodeʵÏÖÁËÕâ¸ö·½·¨¡£

×¢£º ÏëÁ˽â¾ßÌåϸ½ÚÇë²é¿´Îĵµ cnodejs.org/cman/all.html#http.createServer

½Ó×ÅÔËÐÐNode·þÎñÆ÷£¬Ö´ÐÐhello.js´úÂ룬³É¹¦Æô¶¯»á¿´¼ûconsole.log()ÖеÄÎı¾¡£ÓÐͼÓÐÕæÏࣺ

npmµÄÏÂÔØºÍʹÓÃ

³ýNode±¾ÉíÌṩµÄAPIÍ⣬ÏÖÔÚÓв»ÉÙµÚÈý·½Ä£¿é¿É¼«´óµÄÌá¸ß¿ª·¢Ð§ÂÊ£¬npm¾ÍÊÇNodeµÄÈí¼þ°ü¹ÜÀíÆ÷£¬¿ÉÒÔÓÃËü°²×°ËùÐèÈí¼þ°ü²¢·¢²¼×Ô¼ºÎªnodejsдµÄÈí¼þ°ü¡£¹ÙÍøµØÖ·£ºnpmjs.org

°²×°Ö»ÐèÒªÔÚÖÕ¶ËдÈëÒ»ÐдúÂ룺¡¡¡¡¡¡¡¡

¡¡¡¡curl http://npmjs.org/install.sh | sh

npm°²×°nodeÀ©Õ¹°üͬÑùÊÇÒ»ÐдúÂ룺¡¡¡¡

¡¡¡¡npm install <°üÃû>¡¡¡¡¡¡¡¡//Àý£ºnpm install express

×¢£ºÈç¹û°²×°Ä£¿éµÄ¹ý³ÌÖб¨ÓòÃû´íÎóµÄ»°£¬ÇëÇå¿Õ»º´æ >npm cache clean »òÖØÆô¼ÆËã»ú¼´¿É¡£

Àí½âNodeµÄÄ£¿é¸ÅÄî

ÔÚNodeÖУ¬²»Í¬µÄ¹¦ÄÜ×é¼þ±»»®·Ö³É²»Í¬µÄÄ£¿é¡£Ó¦ÓÿÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÀ´Ñ¡ÔñʹÓúÏÊʵÄÄ£¿é¡£Ã¿¸öÄ£¿é¶¼»á±©Â¶Ò»Ð©¹«¹²µÄ·½·¨»òÊôÐÔ¡£Ä£¿éµÄʹÓÃÕßÖ±½ÓʹÓÃÕâЩ·½·¨»òÊôÐÔ¼´¿É£¬¶ÔÓÚÄÚ²¿µÄʵÏÖϸ½Ú¾Í¿ÉÒÔ²»ÓÃÁ˽⡣³ýÁËNode±¾ÉíÌṩµÄAPIÍ⣬¿ª·¢ÈËÔ±Ò²¿ÉÒÔÀûÓÃÕâ¸ö»úÖÆÀ´½«Ó¦Óòð·Ö³É¶à¸öÄ£¿é£¬ÒÔÌá¸ß´úÂëµÄ¿É¸´ÓÃÐÔ¡£

1.ÈçºÎʹÓÃÄ£¿é£¿

ÔÚNodeÖÐʹÓÃÄ£¿éÊǷdz£·½±ãµÄ£¬ÔÚ JavaScript ´úÂëÖпÉÒÔÖ±½ÓʹÓÃÈ«¾Öº¯Êý require() À´¼ÓÔØÒ»¸öÄ£¿é¡£

ÔÚ¸Õ¸Õ¡±Hello World"µÄÀý×ÓÖУ¬require("http") ¿ÉÒÔ¼ÓÔØÏµÍ³Ô¤ÖÃµÄ http Ä£¿é£»Ä£¿éÃû³ÆÒÔ "./" ¿ªÊ¼µÄ£¬Èç require("./myModule.js") ÓÃÀ´¼ÓÔØÓ뵱ǰ JavaScript ÎļþͬһĿ¼Ï嵀 myModule.js Ä£¿é¡£

2.×Ô¼ºÈçºÎ¿ª·¢Ä£¿é£¿

¸Õ¸Õ½éÉÜʹÓÃrequire()µ¼ÈëÄ£¿éµÄʱºò£¬Ä£¿éÃû³ÆÒÔ "./" ¿ªÊ¼µÄÕâÖÖ£¬¾ÍÊÇ×Ô¼º¿ª·¢µÄÄ£¿éÎļþ¡£ÐèҪעÒâµÄ¾ÍÊÇJSÎļþµÄϵͳ·¾¶¡£

´úÂëÖзâ×°ÁËÄ£¿éµÄÄÚ²¿´¦ÀíÂß¼­£¬Ò»¸öÄ£¿éÒ»°ã¶¼»á±©Â¶Ò»Ð©¹«¿ªµÄ·½·¨»òÊôÐÔ¸øÆäËûµÄÈËʹÓá£Ä£¿éµÄÄÚ²¿´úÂëÐèÒª°ÑÕâЩ·½·¨»òÊôÐÔ¸ø±©Â¶³öÀ´¡£

3.À´Ò»Ì×¼òµ¥µÄÀý×Ó¡£ÏÈ´´½¨Ò»¸öÄ£¿éÎļþÈçmyModule.js£¬¾ÍÒ»ÐдúÂë

¡¡¡¡console.log('Hi Darren.')

È»ºó´´½¨Ò»¸ötest.jsÎļþ£¬µ¼ÈëÕâ¸öJSÎļþ£¬Ö´ÐÐnode¿´µ½½á¹û

ÏÖÔÚNodeÉçÇøÖÐÒÑÓв»ÉÙµÚÈý·½µÄÄ£¿é£¬Ï£ÍûÄÜÓиü¶àÈËͨ¹ýѧϰNode£¬¼ÓÈëµ½Õâ¸ö´ó¼ÒÍ¥ÖУ¬ÎªNodeÉçÇøÀ´Ìíש¼ÓÍß¡£ÏÈлл֮£¬ÔÛÃǼÌÐø¡£¡¡¡¡

4.À´Ò»¸öÉîµãµÄÀý×Ó¡£Õâ¸öÀý×ÓÖн«»áÕë¶Ô ˽Óк͹²ÓÐ ½øÐнéÉÜ¡£ÏÈ´´½¨Ò»¸ömyModule.js£¬´úÂëÈçÏ£º

¡¡¡¡var name = "Darren";
¡¡¡¡this.location = "Beijing";
¡¡¡¡this.showLog = function(){
¡¡¡¡ console.log('Hi Darren.')
¡¡¡¡};

´úÂëÖгöÏÖÁËÈýÖÖÀàÐÍ£¬·Ö±ðÊÇ£º ˽ÓÃÊôÐÔ£¬¹²ÓÐÊôÐԺ͹²Óз½·¨£¬ÔÙ´´½¨Ò»¸ötest.js£¬Ö´ÐÐNode

½á¹û¸ßÁÁµÄµØ·½ºÜÇå³þµÄ¸æËßÎÒÃÇ£¬Ë½Óз½·¨ÎÒÃÇÔÚÄ£¿éÒÔÍâÊÇÈ¡²»µ½µÄ£¬ËùÒÔÊÇundefined¡£¹²ÓÐÊôÐԺ͹²Óз½·¨µÄÉùÃ÷ÐèÒªÔÚÇ°Ãæ¼ÓÉÏ this ¹Ø¼ü×Ö¡£

NodeÄÜ×öʲôºÍËüµÄÓÅÊÆ

NodeºËÐÄ˼Ï룺¡¡¡¡1.·Ç×èÈû£»¡¡¡¡2.µ¥Ị̈߳»¡¡¡¡3.ʼþÇý¶¯¡£

ÔÚĿǰµÄwebÓ¦ÓÃÖУ¬¿Í»§¶ËºÍ·þÎñÆ÷¶ËÖ®¼äÓÐЩ½»»¥¿ÉÒÔÈÏΪÊÇ»ùÓÚʼþµÄ£¬ÄÇôAJAX¾ÍÊÇÒ³Ãæ¼°Ê±ÏìÓ¦µÄ¹Ø¼ü¡£Ã¿´Î·¢ËÍÒ»¸öÇëÇóʱ£¨²»¹ÜÇëÇóµÄÊý¾Ý¶àôС£©£¬¶¼»áÔÚÍøÂçÀï×ßÒ»¸öÀ´»Ø¡£·þÎñÆ÷±ØÐëÕë¶ÔÕâ¸öÇëÇó×÷³öÏìÓ¦£¬Í¨³£ÊÇ¿ª±ÙÒ»¸öеĽø³Ì¡£ÄÇôԽ¶àÓû§·ÃÎÊÕâ¸öÒ³Ãæ£¬Ëù·¢ÆðµÄÇëÇó¸öÊý¾Í»áÔ½À´Ô½¶à£¬¾Í»á³öÏÖÄÚ´æÒç³ö¡¢Âß¼­½»´í´øÀ´µÄ³åÍ»¡¢ÍøÂç̱»¾¡¢ÏµÍ³±ÀÀ£ÕâЩÎÊÌâ¡£

NodeµÄÄ¿±êÊÇÌṩһÖÖ¹¹½¨¿ÉÉìËõµÄÍøÂçÓ¦Óõķ½°¸£¬ÔÚhello worldÀý×ÓÖУ¬·þÎñÆ÷¿ÉÒÔͬʱ´¦ÀíºÜ¶à¿Í»§¶ËÁ¬½Ó¡£

NodeºÍ²Ù×÷ϵͳÓÐÒ»ÖÖÔ¼¶¨£¬Èç¹û´´½¨ÁËеÄÁ´½Ó£¬²Ù×÷ϵͳ¾Í½«Í¨ÖªNode£¬È»ºó½øÈëÐÝÃß¡£Èç¹ûÓÐÈË´´½¨ÁËеÄÁ´½Ó£¬ÄÇôËü£¨Node£©Ö´ÐÐÒ»¸ö»Øµ÷£¬Ã¿Ò»¸öÁ´½ÓÖ»Õ¼ÓÃÁ˷dz£Ð¡µÄ£¨Äڴ棩¶ÑÕ»¿ªÏú¡£¡¡¡¡¡¡

¾ÙÒ»¸ö¼òµ¥µÄÒì²½µ÷ÓõÄÀý×Ó£¬°Ñtest.jsºÍmyMydule.js×¼±¸ºÃÁË£¬^_^¡£°ÑÒÔÏ´úÂ뿽±´µ½test.jsÖв¢Ö´ÐУº

¡¡¡¡var fs = require('fs');
¡¡¡¡fs.readFile('./myModule.js', function (err, data) {
¡¡¡¡¡¡¡¡if (err) throw err;
¡¡¡¡¡¡¡¡console.log('successfully');
¡¡¡¡});
¡¡¡¡console.log('async');

ËùνµÄÒì²½£¬´ó¼ÒÓ¦¸Ã¶¼ÄÜÏëµÃµ½ÔËÐÐʱ»áÏÈ´òÏÈÏÔʾ"async"£¬ÔÙÏÔʾ"successfully"¡£

NodeÊÇÎÞ×èÈûµÄ£¬ÐÂÇëÇóµ½´ï·þÎñÆ÷ʱ£¬²»ÐèҪΪÕâ¸öÇëÇóµ¥¶À×÷ʲôÊÂÇé¡£Node½ö½öÊÇÔÚÄÇÀïµÈ´ýÇëÇóµÄ·¢Éú£¬ÓÐÇëÇó¾Í´¦ÀíÇëÇó¡£

Node¸üÉó¤´¦ÀíÌå»ýСµÄÇëÇóÒÔ¼°»ùÓÚʼþµÄI/O¡£

Node²»½ö½öÊÇ×öÒ»¸öWeb·þÎñµÄ¿ò¼Ü£¬Ëü¿ÉÒÔ×ö¸ü¶à£¬±ÈÈçËü¿ÉÒÔ×öSocket·þÎñ£¬¿ÉÒÔ×ö±È·½Ëµ»ùÓÚÎļþµÄ£¬È»ºó»ùÓÚÏñһЩ±È·½Ëµ¿ÉÒÔÓÐ×Ó½ø³Ì£¬È»ºóÄÚ²¿µÄ£¬ËüÊÇÒ»¸öºÜÍêÕûµÄʼþ»úÖÆ£¬°üÀ¨Ò»Ð©Òì²½·Ç×¢ÉäµÄ½â¾ö·½°¸£¬¶ø²»½ö½ö¾ÖÏÞÔÚÍøÂçÒ»²ã¡£Í¬Ê±Ëü¿ÉÄÜ£¬¼´Ê¹×÷Ϊһ¸öWeb·þÎñÀ´Ëµ£¬ËüÒ²ÌṩÁ˸ü¶à¿ÉÒÔÉîÈëÕâ¸ö·þÎñÄںˡ¢ºËÐĵÄһЩ¹¦ÄÜ£¬±È·½ËµNodeʹÓõÄHttp Agent£¬Õâ¿é¾ÍÊÇËü¿ÉÒÔ¸üÉîÈëÕâ¸ö·þÎñÄÚºËÀ´È¥×öһЩ¹¦ÄÜ¡£

NodeʼþÁ÷¸ÅÄî

ÒòΪNode ²ÉÓõÄÊÇʼþÇý¶¯µÄģʽ£¬ÆäÖеĺܶàÄ£¿é¶¼»á²úÉú¸÷ÖÖ²»Í¬µÄʼþ£¬¿ÉÓÉÄ£¿éÀ´Ìí¼Óʼþ´¦Àí·½·¨£¬ËùÓÐÄܹ»²úÉúʼþµÄ¶ÔÏó¶¼ÊÇʼþÄ£¿éÖÐµÄ EventEmitter ÀàµÄʵÀý¡£´úÂëÊÇÈ«ÊÀ½çͨÓõÄÓïÑÔ£¬ËùÒÔÎÒÃÇ»¹ÊÇÓôúÂë˵»°£º

¡¡var events = require("events");
¡¡¡¡var emitter = new events.EventEmitter();
¡¡¡¡emitter.on("myEvent", function(msg) {
¡¡¡¡¡¡¡¡console.log(msg);
¡¡¡¡});
¡¡¡¡emitter.emit("myEvent", "Hello World.");

¼òµ¥µÄ·ÖÎöÕâ¶Î£º

1. ʹÓÃrequire()·½·¨Ìí¼ÓÁËeventsÄ£¿é²¢°Ñ·µ»ØÖµ¸³¸øÁËÒ»¸ö±äÁ¿

2. new events.EventEmitter()Õâ¾ä´´½¨ÁËÒ»¸öʼþ´¥·¢Æ÷£¬Ò²¾ÍÊÇËùνµÄʼþÄ£¿éÖÐµÄ EventEmitter ÀàµÄʵÀý

3. on(event, listener)ÓÃÀ´ÎªÄ³¸öʼþ event Ìí¼Óʼþ´¦Àí·½·¨¼àÌýÆ÷

4. emit(event, [arg1], [arg2], [...]) ·½·¨ÓÃÀ´²úÉúʼþ¡£ÒÔÌṩµÄ²ÎÊý×÷Ϊ¼àÌýÆ÷º¯ÊýµÄ²ÎÊý£¬Ë³ÐòÖ´ÐмàÌýÆ÷ÁбíÖеÄÿ¸ö¼àÌýÆ÷º¯Êý¡£

EventEmitter ÀàÖеķ½·¨¶¼ÓëʼþµÄ²úÉúºÍ´¦ÀíÏà¹Ø£º

1. addListener(event, listener) ºÍ on(event, listener) ÕâÁ½¸ö·½·¨¶¼Êǽ«Ò»¸ö¼àÌýÆ÷Ìí¼Óµ½Ö¸¶¨Ê¼þµÄ¼àÌýÆ÷Êý×éµÄĩβ

2. once(event, listener) Õâ¸ö·½·¨ÎªÊ¼þΪÌí¼ÓÒ»´ÎÐԵļàÌýÆ÷¡£¸Ã¼àÌýÆ÷ÔÚʼþµÚÒ»´Î´¥·¢Ê±Ö´ÐУ¬¹ýºó½«±»ÒƳý

3. removeListener(event, listener) ¸Ã·½·¨ÓÃÀ´½«¼àÌýÆ÷´ÓÖ¸¶¨Ê¼þµÄ¼àÌýÆ÷Êý×éÖÐÒÆ³ý³öÈ¥

4. emit(event, [arg1], [arg2], [...]) ¸Õ¸ÕÌáµ½¹ýÁË¡£

ÔÚNodeÖУ¬´æÔÚ¸÷ʽ¸÷Ñù²»Í¬µÄÊý¾ÝÁ÷£¬Stream£¨Á÷£©ÊÇÒ»¸öÓɲ»Í¬¶ÔÏóʵÏֵijéÏó½Ó¿Ú¡£ÀýÈçÇëÇóHTTP·þÎñÆ÷µÄrequestÊÇÒ»¸öÁ÷£¬ÀàËÆÓÚstdout£¨±ê×¼Êä³ö£©£»°üÀ¨Îļþϵͳ¡¢HTTP ÇëÇóºÍÏìÓ¦¡¢ÒÔ¼° TCP/UDP Á¬½ÓµÈ¡£Á÷¿ÉÒÔÊǿɶÁµÄ£¬¿ÉдµÄ£¬»òÕ߼ȿɶÁÓÖ¿Éд¡£ËùÓÐÁ÷¶¼ÊÇEventEmitterµÄʵÀý£¬Òò´Ë¿ÉÒÔ²úÉú¸÷ÖÖ²»Í¬µÄʼþ¡£

¿É¶ÁÁ÷Ö÷Òª»á²úÉúÒÔÏÂʼþ£º

data µ±¶ÁÈ¡µ½Á÷ÖеÄÊý¾Ýʱ£¬´Ëʼþ±»´¥·¢

end µ±Á÷ÖÐûÓÐÊý¾Ý¿É¶Áʱ£¬´Ëʼþ±»´¥·¢

error µ±¶ÁÈ¡Êý¾Ý³öÏÖ´íÎóʱ£¬´Ëʼþ±»´¥·¢

close µ±Á÷±»¹Ø±Õʱ£¬£¬´Ëʼþ±»´¥·¢£¬¿ÉÊDz¢²»ÊÇËùÓÐÁ÷¶¼»á´¥·¢Õâ¸öʼþ¡££¨ÀýÈ磬һ¸öÁ¬½Ó½øÈëµÄHTTP

requestÁ÷¾Í²»»á´¥·¢'close'ʼþ¡££©

»¹ÓÐÒ»ÖֱȽÏÌØÊâµÄ fd ʼþ£¬µ±ÔÚÁ÷ÖнÓÊÕµ½Ò»¸öÎļþÃèÊö·ûʱ´¥·¢´Ëʼþ¡£Ö»ÓÐUNIXÁ÷Ö§³ÖÕâ¸ö¹¦ÄÜ£¬ÆäËûÀàÐ͵ÄÁ÷¾ù²»»á´¥·¢´Ëʼþ¡£

Ïà¹ØÏêϸÎĵµ£ºhttp://cnodejs.org/cman/all.html#events_

Ç¿´óµÄFile System Îļþϵͳģ¿é

Node ÖÐµÄ fs Ä£¿éÓÃÀ´¶Ô±¾µØÎļþϵͳ½øÐвÙ×÷¡£ÎļþµÄI/OÊÇÓɱê×¼POSIXº¯Êý·â×°¶ø³É¡£ÐèҪʹÓÃrequire('fs')·ÃÎÊÕâ¸öÄ£¿é¡£ËùÓеķ½·¨¶¼ÌṩÁËÒì²½ºÍͬ²½Á½ÖÖ·½Ê½¡£

fs Ä£¿éÖÐÌṩµÄ·½·¨¿ÉÒÔÓÃÀ´Ö´Ðлù±¾µÄÎļþ²Ù×÷£¬°üÀ¨¶Á¡¢Ð´¡¢ÖØÃüÃû¡¢´´½¨ºÍɾ³ýĿ¼ÒÔ¼°»ñÈ¡ÎļþÔªÊý¾ÝµÈ¡£Ã¿¸ö²Ù×÷ÎļþµÄ·½·¨¶¼ÓÐͬ²½ºÍÒì²½Á½¸ö°æ±¾¡£

Òì²½²Ù×÷µÄ°æ±¾¶¼»áʹÓÃÒ»¸ö»Øµ÷·½·¨×÷Ϊ×îºóÒ»¸ö²ÎÊý¡£µ±²Ù×÷Íê³ÉµÄʱºò£¬¸Ã»Øµ÷·½·¨»á±»µ÷Ó᣶ø»Øµ÷·½·¨µÄµÚÒ»¸ö²ÎÊý×ÜÊDZ£ÁôΪ²Ù×÷ʱ¿ÉÄܳöÏÖµÄÒì³£¡£Èç¹û²Ù×÷ÕýÈ·³É¹¦£¬ÔòµÚÒ»¸ö²ÎÊýµÄÖµÊÇ null »ò undefined ¡£

ͬ²½²Ù×÷µÄ°æ±¾µÄ·½·¨Ãû³ÆÔòÊÇÔÚ¶ÔÓ¦µÄÒì²½·½·¨Ö®ºó¼ÓÉÏÒ»¸ö Sync ×÷Ϊºó׺¡£±ÈÈçÒì²½µÄ rename() ·½·¨µÄͬ²½°æ±¾ÊÇ renameSync() ¡£ÏÂÃæÁгöÀ´ÁË fs Ä£¿éÖеÄһЩ³£Ó÷½·¨£¬¶¼Ö»½éÉÜÒì²½²Ù×÷µÄ°æ±¾¡£

test.jsºÍmyModule.jsÎļþ×¼±¸ºÃÁËľ£¿°ÑÏÂÃæÕâ¶Î´úÂëcopyµ½test.jsÖÐÖ´ÐÐÒ»´Î

¡¡¡¡var fs = require('fs');
¡¡¡¡fs.unlink('./myModule.js', function (err) {
¡¡¡¡¡¡¡¡if (err) throw err;
¡¡¡¡¡¡¡¡console.log('successfully deleted myModule.js');
¡¡¡¡});

Èç¹ûûÓб¨error£¬ÄÇômyModule.js¾Í±»É¾³ýÁË£¬¾ÍÊÇÕâô¼òµ¥

ÕâÖ»ÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£¬¸ÐÐËȤµÄ»°×Ô¼ºÈ¥¶à¶à³¢ÊÔ£¬Êµ¼ù³öÕæÀí¡£ÓÉÓÚÆª·ùÔ­Òò¾Í²»¶à¾ÙÀýÁË¡£^_^

ѧϰNodeµÄ×ܽ᣺

1.¶ÔÓÚÒ»¸ölinuxµÄÃüÁîºÍshell֪ʶ¼¸ºõΪÁãµÄÎÒÀ´Ëµ£¬Õâ¶Îʱ¼äÓÖѧµ½Á˲»ÉÙ¹ØÓÚlinux֪ʶ£»vimÕæÊÇÒ»¸öÇ¿´óµÄ±à¼­Æ÷£¬²»ÓÃÊó±êµÄ¸Ð¾õÕæµÄºÜºÃ£»¶øÇÒÓÐÒ»µã¶ÔÎÒÀ´ËµºÜÖØÒª£¬ÔÚlinuxϱà³ÌºÜcool£¬ÓÈÆäÊÇÔÚÍŶÓÖж¼ÊÇʹÓÃwindowsµÄ£¬×°×°¸ü½¡¿µ^_^¡£

2.Àí½âÁË·þÎñ¶ËJavaScriptµÄÒ»¸ö³É¹¦¿ò¼Ü-Node£¬ÒÔ¼°ËüµÄһЩÓÅÊÆºÍʹÓõķ½Ê½£¬ÕâÆªÎÄÕ¾ÍÊÇ×îºÃµÄ×ܽᣬµ±È»£¬ÕâÖ»»áÊÇÒ»¸ö¿ªÊ¼¡£

3.¶ÔÓÚûÓнøÈëÄÇôÃÎÏëµÄ¹«Ë¾ÆäʵÊÇÓÐÄÇôµãÒź¶£¬²»¹ýÉú»î¾ÍÓ¦¸ÃÒªÕâÑù£¬Óв¨ÕÛÓÐÆð·ü£¬ÕâÕýÊÇÎÒÐèÒª²¢ÇÒÆÚ´ýµÄ...ÄÇôеÄÉú»î»¹ÊÇÒª¼ÌÐø£¬×ö×Ô¼ºµÄ¶æÊÖ£¬°ÑÎÕºÃ×Ô¼ºµÄ·½Ïò£¬¹ýÈ¥µÄ¾ÍÈÃËü¹ýÈ¥°É¡£

һЩÏë¶Ô´ó»ï˵µÄ»°£º

1. ÔÚÕâÎҵôò»÷Ò»²¿·ÖÈ˵Ļý¼«ÐÔ¡£¼ÙÈçÄã¶Ôºǫ́¼¼Êõ²»¹»Á˽â»òÕßû½Ó´¥¹ý·þÎñ¶ËÓïÑÔ£¬²»ÖªµÀI/OÕâЩ֪ʶ£¬Ã»Óкǫ́´¦ÀíÁ÷³ÌÕâÖÖ¸ÅÄÄÇô......Node²¢²»ÊÇÒ»ÃÅÊʺÏÈëÃŵķþÎñ¶Ë¼¼Êõ¡£ÎªÊ²Ã´Õâô˵£º

a.ÖØµã¾ÍÊÇÖÐÎÄʵÀýÉÙ£¬ÎÄÕÂÉÙ£¬ÏëϵͳµÄѧϰ»á±È½ÏÂé·³£¬ËùÒÔÔÚʹÓùý³ÌÖÐ×ÜÓÐÒ»ÖÖ²»³ÉÊìµÄ¸Ð¾õ£¬µ±È»Ö÷Òª»¹ÊÇÒòΪÎÒ¶ÔËü²»ÊìϤËùÔì³ÉµÄ¡£¹úÄÚʹÓÃNodeµÄ¹«Ë¾È·Êµ²»¶à£¬µ±È»¹úÍ⻹ÊÇÓв»ÉÙÁË£¬´Ócnodejs.org½ØÁËÒ»¸öͼ£º

b.¶ÔûÓо­ÑéµÄÅóÓÑÀ´ËµnodeÆäʵ²¢²»ºÃÉÏÊÖ£¬´Ó×î¼òµ¥¡°Hello world¡±¾Í¿ÉÒÔ¿´³öÀ´(¸÷ÖÖÔËÐл·¾³ºÍ°²×°Ï¸½ÚµÄÁ˽ⶼµÃ·Ñµã¹¦·ò)£¬²»ÒªÒÔjQuery¿âΪ±È½Ï£¬Ëù´¦ÀíµÄÊÂÎﲻͬ£¬Ñ§Ï°µÄ³É±¾Ò²²»Í¬ - ËùÒÔ²»Ì«½¨Òé×÷ΪÐÂÊÖÈëÃŵķþÎñ¶Ë¼¼Êõ£¬Èç¹ûÏëѧϰһÃÅ·þÎñ¶ËÓïÑÔPHPºÍPython¶¼ÊDz»´íµÄÑ¡Ôñ£¬ÒòΪ£ºÊé¶à Àý×Ó¶à ¿ò¼Ü¶à ÉÏÊÖ¼òµ¥ ÈÝÒ×Àí½â ´î½¨·½±ã...

 

   
4466 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì