ÏȸãµãǰϷÈÈÈȳ¡
- ΪʲôдÕâÆªÎÄÕ£º
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»´íµÄÑ¡Ôñ£¬ÒòΪ£ºÊé¶à
Àý×Ó¶à ¿ò¼Ü¶à ÉÏÊÖ¼òµ¥ ÈÝÒ×Àí½â ´î½¨·½±ã...
|