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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÆßÌìѧ»áNodeJS
 
×÷ÕߣºÀ´Ô´£ºOPEN¾­Ñé¿â ·¢²¼ÓÚ 2015-2-13
  2233  次浏览      27
 

NodeJS»ù´¡

ʲôÊÇNodeJS

JSÊǽű¾ÓïÑÔ£¬½Å±¾ÓïÑÔ¶¼ÐèÒªÒ»¸ö½âÎöÆ÷²ÅÄÜÔËÐС£¶ÔÓÚдÔÚHTMLÒ³ÃæÀïµÄJS£¬ä¯ÀÀÆ÷³äµ±Á˽âÎöÆ÷µÄ½ÇÉ«¡£¶ø¶ÔÓÚÐèÒª¶ÀÁ¢ÔËÐеÄJS£¬NodeJS¾ÍÊÇÒ»¸ö½âÎöÆ÷¡£

ÿһÖÖ½âÎöÆ÷¶¼ÊÇÒ»¸öÔËÐл·¾³£¬²»µ«ÔÊÐíJS¶¨Òå¸÷ÖÖÊý¾Ý½á¹¹£¬½øÐи÷ÖÖ¼ÆË㣬»¹ÔÊÐíJSʹÓÃÔËÐл·¾³ÌṩµÄÄÚÖöÔÏóºÍ·½·¨×öһЩÊÂÇé¡£ÀýÈçÔËÐÐÔÚä¯ÀÀÆ÷ÖеÄJSµÄÓÃ;ÊDzÙ×÷DOM£¬ä¯ÀÀÆ÷¾ÍÌṩÁËdocumentÖ®ÀàµÄÄÚÖöÔÏó¡£¶øÔËÐÐÔÚNodeJSÖеÄJSµÄÓÃ;ÊDzÙ×÷´ÅÅÌÎļþ»ò´î½¨HTTP·þÎñÆ÷£¬NodeJS¾ÍÏàÓ¦ÌṩÁËfs¡¢httpµÈÄÚÖöÔÏó¡£

ÓÐɶÓô¦

¾¡¹Ü´æÔÚÒ»Ìý˵¿ÉÒÔÖ±½ÓÔËÐÐJSÎļþ¾Í¾õµÃºÜ¿áµÄͬѧ£¬µ«´ó¶àÊýͬѧÔÚ½Ó´¥Ð¶«Î÷ʱÊ×ÏȹØÐĵÄÊÇÓÐɶÓô¦£¬ÒÔ¼°ÄÜ´øÀ´É¶¼ÛÖµ¡£

NodeJSµÄ×÷Õß˵£¬Ëû´´ÔìNodeJSµÄÄ¿µÄÊÇΪÁËʵÏÖ¸ßÐÔÄÜWeb·þÎñÆ÷£¬ËûÊ×ÏÈ¿´ÖصÄÊÇʼþ»úÖÆºÍÒì²½IOÄ£Ð͵ÄÓÅÔ½ÐÔ£¬¶ø²»ÊÇJS¡£µ«ÊÇËûÐèҪѡÔñÒ»ÖÖ±à³ÌÓïÑÔʵÏÖËûµÄÏë·¨£¬ÕâÖÖ±à³ÌÓïÑÔ²»ÄÜ×Ô´øIO¹¦ÄÜ£¬²¢ÇÒÐèÒªÄÜÁ¼ºÃÖ§³Öʼþ»úÖÆ¡£JSûÓÐ×Ô´øIO¹¦ÄÜ£¬ÌìÉú¾ÍÓÃÓÚ´¦Àíä¯ÀÀÆ÷ÖÐµÄ DOMʼþ£¬²¢ÇÒÓµÓÐÒ»´óȺ³ÌÐòÔ±£¬Òò´Ë¾Í³ÉΪÁËÌìÈ»µÄÑ¡Ôñ¡£

ÈçËûËùÔ¸£¬NodeJSÔÚ·þÎñ¶Ë»îÔ¾ÆðÀ´£¬³öÏÖÁË´óÅú»ùÓÚNodeJSµÄWeb·þÎñ¡£¶øÁíÒ»·½Ã棬NodeJSÈÃǰ¶ËÖÚÈç»ñÉñÆ÷£¬ÖÕÓÚ¿ÉÒÔÈÃ×Ô¼ºµÄÄÜÁ¦¸²¸Ç·¶Î§Ìø³öä¯ÀÀÆ÷´°¿Ú£¬¸ü´óÅúµÄǰ¶Ë¹¤¾ßÈçÓêºó´ºËñ¡£

Òò´Ë£¬¶ÔÓÚǰ¶Ë¶øÑÔ£¬ËäÈ»²»ÊÇÈËÈ˶¼ÒªÄÃNodeJSдһ¸ö·þÎñÆ÷³ÌÐò£¬µ«¼òµ¥¿ÉÖÁʹÓÃÃüÁî½»»¥Ä£Ê½µ÷ÊÔJS´úÂëÆ¬¶Î£¬¸´ÔÓ¿ÉÖÁ±àд¹¤¾ßÌáÉý¹¤×÷ЧÂÊ¡£

NodeJSÉú̬ȦÕýÐÀÐÀÏòÈÙ¡£

ÈçºÎ°²×°

°²×°³ÌÐò

NodeJSÌṩÁËһЩ°²×°³ÌÐò£¬¶¼¿ÉÒÔÔÚnodejs.orgÕâÀïÏÂÔØ²¢°²×°¡£

WindowsϵͳÏ£¬Ñ¡ÔñºÍϵͳ°æ±¾Æ¥ÅäµÄ.msiºó׺µÄ°²×°Îļþ¡£Mac OS XϵͳÏ£¬Ñ¡Ôñ.pkgºó׺µÄ°²×°Îļþ¡£

±àÒë°²×°

LinuxϵͳÏÂûÓÐÏֳɵݲװ³ÌÐò¿ÉÓã¬ËäȻһЩ·¢Ðаæ¿ÉÒÔʹÓÃapt-getÖ®ÀàµÄ·½Ê½°²×°£¬µ«²»Ò»¶¨Äܰ²×°µ½×îа档Òò´ËLinuxϵͳÏÂÒ»°ãʹÓÃÒÔÏ·½Ê½±àÒ뷽ʽ°²×°NodeJS¡£

È·±£ÏµÍ³ÏÂg++°æ±¾ÔÚ4.6ÒÔÉÏ£¬python°æ±¾ÔÚ2.6ÒÔÉÏ¡£

´Ónodejs.orgÏÂÔØtar.gzºó׺µÄNodeJS×îаæÔ´´úÂë°ü²¢½âѹµ½Ä³¸öλÖá£

½øÈë½âѹµ½µÄĿ¼£¬Ê¹ÓÃÒÔÏÂÃüÁî±àÒëºÍ°²×°¡£

$ ./configure
$ make
$ sudo make install

ÈçºÎÔËÐÐ

´ò¿ªÖÕ¶Ë£¬¼üÈënode½øÈëÃüÁî½»»¥Ä£Ê½£¬¿ÉÒÔÊäÈëÒ»Ìõ´úÂëÓï¾äºóÁ¢¼´Ö´Ðв¢ÏÔʾ½á¹û£¬ÀýÈ磺

$ node
> console.log('Hello World!');
Hello World!

Èç¹ûÒªÔËÐÐÒ»´ó¶Î´úÂëµÄ»°£¬¿ÉÒÔÏÈдһ¸öJSÎļþÔÙÔËÐС£ÀýÈçÓÐÒÔÏÂhello.js¡£

function hello() {
console.log('Hello World!');
}
hello();

дºÃºóÔÚÖÕ¶ËϼüÈënode hello.jsÔËÐУ¬½á¹ûÈçÏ£º

$ node hello.js
Hello World

ȨÏÞÎÊÌâ

ÔÚLinuxϵͳÏ£¬Ê¹ÓÃNodeJS¼àÌý80»ò443¶Ë¿ÚÌṩHTTP(S)·þÎñʱÐèÒªrootȨÏÞ£¬ÓÐÁ½ÖÖ·½Ê½¿ÉÒÔ×öµ½¡£

Ò»ÖÖ·½Ê½ÊÇʹÓÃsudoÃüÁîÔËÐÐNodeJS¡£ÀýÈçͨ¹ýÒÔÏÂÃüÁîÔËÐеÄserver.jsÖÐÓÐȨÏÞʹÓÃ80ºÍ443¶Ë¿Ú¡£Ò»°ãÍÆ¼öÕâÖÖ·½Ê½£¬¿ÉÒÔ±£Ö¤½öΪÓÐÐèÒªµÄJS½Å±¾ÌṩrootȨÏÞ¡£

$ sudo node server.js

ÁíÒ»ÖÖ·½Ê½ÊÇʹÓÃchmod +sÃüÁîÈÃNodeJS×ÜÊÇÒÔrootȨÏÞÔËÐУ¬¾ßÌå×ö·¨ÈçÏ¡£ÒòΪÕâÖÖ·½Ê½ÈÃÈκÎJS½Å±¾¶¼ÓÐÁËrootȨÏÞ£¬²»Ì«°²È«£¬Òò´ËÔÚÐèÒªºÜ¿¼Âǰ²È«µÄϵͳϲ»ÍƼöʹÓá£

$ sudo chown root /usr/local/bin/node
$ sudo chmod +s /usr/local/bin/node

Ä£¿é

±àдÉÔ´óÒ»µãµÄ³ÌÐòʱһ°ã¶¼»á½«´úÂëÄ£¿é»¯¡£ÔÚNodeJSÖУ¬Ò»°ã½«´úÂëºÏÀí²ð·Öµ½²»Í¬µÄJSÎļþÖУ¬Ã¿Ò»¸öÎļþ¾ÍÊÇÒ»¸öÄ£¿é£¬¶øÎļþ·¾¶¾ÍÊÇÄ£¿éÃû¡£

ÔÚ±àдÿ¸öÄ£¿éʱ£¬¶¼ÓÐrequire¡¢exports¡¢moduleÈý¸öÔ¤Ïȶ¨ÒåºÃµÄ±äÁ¿¿É¹©Ê¹Óá£

require

requireº¯ÊýÓÃÓÚÔÚµ±Ç°Ä£¿éÖмÓÔØºÍʹÓñðµÄÄ£¿é£¬´«ÈëÒ»¸öÄ£¿éÃû£¬·µ»ØÒ»¸öÄ£¿éµ¼³ö¶ÔÏó¡£Ä£¿éÃû¿ÉʹÓÃÏà¶Ô·¾¶£¨ÒÔ./¿ªÍ·£©£¬»òÕßÊǾø¶Ô·¾¶£¨ÒÔ/»òC:Ö®ÀàµÄÅÌ·û¿ªÍ·£©¡£ÁíÍ⣬ģ¿éÃûÖеÄ.jsÀ©Õ¹Ãû¿ÉÒÔÊ¡ÂÔ¡£ÒÔÏÂÊÇÒ»¸öÀý×Ó¡£

var foo1 = require('./foo');
var foo2 = require('./foo.js');
var foo3 = require('/home/user/foo');
var foo4 = require('/home/user/foo.js');

// foo1ÖÁfoo4Öб£´æµÄÊÇͬһ¸öÄ£¿éµÄµ¼³ö¶ÔÏó¡£

ÁíÍ⣬¿ÉÒÔʹÓÃÒÔÏ·½Ê½¼ÓÔØºÍʹÓÃÒ»¸öJSONÎļþ£¬Ä£¿éÃûÖÐ.jsonÀ©Õ¹Ãû²»¿ÉÊ¡ÂÔ¡£

var data = require('./data.json');

exports

exports¶ÔÏóÊǵ±Ç°Ä£¿éµÄµ¼³ö¶ÔÏó£¬ÓÃÓÚµ¼³öÄ£¿é¹«Óз½·¨ºÍÊôÐÔ¡£±ðµÄÄ£¿éͨ¹ýrequireº¯ÊýʹÓõ±Ç°Ä£¿éʱµÃµ½µÄ¾ÍÊǵ±Ç°Ä£¿éµÄexports¶ÔÏó¡£ÒÔÏÂÀý×ÓÖе¼³öÁËÒ»¸ö¹«Óз½·¨¡£

exports.hello = function () {
console.log('Hello World!');
};

module

ͨ¹ýmodule¶ÔÏó¿ÉÒÔ·ÃÎʵ½µ±Ç°Ä£¿éµÄһЩÏà¹ØÐÅÏ¢£¬µ«×î¶àµÄÓÃ;ÊÇÌæ»»µ±Ç°Ä£¿éµÄµ¼³ö¶ÔÏó¡£ÀýÈçÄ£¿éµ¼³ö¶ÔÏóĬÈÏÊÇÒ»¸öÆÕͨ¶ÔÏó£¬Èç¹ûÏë¸Ä³ÉÒ»¸öº¯ÊýµÄ»°£¬¿ÉÒÔʹÓÃÒÔÏ·½Ê½¡£

module.exports = function () {
console.log('Hello World!');
};

ÒÔÉÏ´úÂëÖУ¬Ä£¿éĬÈϵ¼³ö¶ÔÏó±»Ì滻Ϊһ¸öº¯Êý¡£

Ä£¿é³õʼ»¯

Ò»¸öÄ£¿éÖеÄJS´úÂë½öÔÚÄ£¿éµÚÒ»´Î±»Ê¹ÓÃʱִÐÐÒ»´Î£¬²¢ÔÚÖ´Ðйý³ÌÖгõʼ»¯Ä£¿éµÄµ¼³ö¶ÔÏó¡£Ö®ºó£¬»º´æÆðÀ´µÄµ¼³ö¶ÔÏó±»Öظ´ÀûÓá£

Ö÷Ä£¿é

ͨ¹ýÃüÁîÐвÎÊý´«µÝ¸øNodeJSÒÔÆô¶¯³ÌÐòµÄÄ£¿é±»³ÆÎªÖ÷Ä£¿é¡£Ö÷Ä£¿é¸ºÔðµ÷¶È×é³ÉÕû¸ö³ÌÐòµÄÆäËüÄ£¿éÍê³É¹¤×÷¡£ÀýÈçͨ¹ýÒÔÏÂÃüÁîÆô¶¯³ÌÐòʱ£¬main.js¾ÍÊÇÖ÷Ä£¿é¡£

$ node main.js

ÍêÕûʾÀý

ÀýÈçÓÐÒÔÏÂĿ¼¡£

- /home/user/hello/
- util/
counter.js
main.js

ÆäÖÐcounter.jsÄÚÈÝÈçÏ£º

var i = 0;

function count() {
return ++i;
}

exports.count = count;

¸ÃÄ£¿éÄÚ²¿¶¨ÒåÁËÒ»¸ö˽ÓбäÁ¿i£¬²¢ÔÚexports¶ÔÏóµ¼³öÁËÒ»¸ö¹«Óз½·¨count¡£

Ö÷Ä£¿émain.jsÄÚÈÝÈçÏ£º

var counter1 = require('./util/counter');
var counter2 = require('./util/counter');

console.log(counter1.count());
console.log(counter2.count());
console.log(counter2.count());

ÔËÐиóÌÐòµÄ½á¹ûÈçÏ£º

$ node main.js

¿ÉÒÔ¿´µ½£¬counter.js²¢Ã»ÓÐÒòΪ±»requireÁËÁ½´Î¶ø³õʼ»¯Á½´Î¡£

¶þ½øÖÆÄ£¿é

ËäȻһ°ãÎÒÃÇʹÓÃJS±àдģ¿é£¬µ«NodeJSÒ²Ö§³ÖʹÓÃC/C++±àд¶þ½øÖÆÄ£¿é¡£±àÒëºÃµÄ¶þ½øÖÆÄ£¿é³ýÁËÎļþÀ©Õ¹ÃûÊÇ.nodeÍ⣬ºÍJSÄ£¿éµÄʹÓ÷½Ê½Ïàͬ¡£ËäÈ»¶þ½øÖÆÄ£¿éÄÜʹÓòÙ×÷ϵͳÌṩµÄËùÓй¦ÄÜ£¬ÓµÓÐÎÞÏÞµÄDZÄÜ£¬µ«¶ÔÓÚǰ¶Ëͬѧ¶øÑÔ±àд¹ýÓÚÀ§ÄÑ£¬²¢ÇÒÄÑÒÔ¿çÆ½Ì¨Ê¹Óã¬Òò´Ë²»ÔÚ±¾½Ì³ÌµÄ¸²¸Ç·¶Î§ÄÚ¡£

С½á

±¾Õ½éÉÜÁËÓйØNodeJSµÄ»ù±¾¸ÅÄîºÍʹÓ÷½·¨£¬×ܽáÆðÀ´ÓÐÒÔÏÂ֪ʶµã£º

1.NodeJSÊÇÒ»¸öJS½Å±¾½âÎöÆ÷£¬ÈκβÙ×÷ϵͳϰ²×°NodeJS±¾ÖÊÉÏ×öµÄÊÂÇé¶¼ÊǰÑNodeJSÖ´ÐгÌÐò¸´ÖƵ½Ò»¸öĿ¼£¬È»ºó±£Ö¤Õâ¸öĿ¼ÔÚϵͳPATH»·¾³±äÁ¿Ï£¬ÒÔ±ãÖÕ¶ËÏ¿ÉÒÔʹÓÃnodeÃüÁî¡£

2. ÖÕ¶ËÏÂÖ±½ÓÊäÈënodeÃüÁî¿É½øÈëÃüÁî½»»¥Ä£Ê½£¬ºÜÊʺÏÓÃÀ´²âÊÔһЩJS´úÂëÆ¬¶Î£¬±ÈÈçÕýÔò±í´ïʽ¡£

3.NodeJSʹÓÃCMDÄ£¿éϵͳ£¬Ö÷Ä£¿é×÷Ϊ³ÌÐòÈë¿Úµã£¬ËùÓÐÄ£¿éÔÚÖ´Ðйý³ÌÖÐÖ»³õʼ»¯Ò»´Î¡£

4.³ý·ÇJSÄ£¿é²»ÄÜÂú×ãÐèÇ󣬷ñÔò²»ÒªÇáÒ×ʹÓöþ½øÖÆÄ£¿é£¬·ñÔòÄãµÄÓû§»á½Ð¿àÁ¬Ìì¡£

´úÂëµÄ×éÖ¯ºÍ²¿Êð

Óо­ÑéµÄC³ÌÐòÔ±ÔÚ±àдһ¸öгÌÐòʱÊ×ÏÈ´ÓmakeÎļþдÆð¡£Í¬ÑùµÄ£¬Ê¹ÓÃNodeJS±àд³ÌÐòǰ£¬ÎªÁËÓиöÁ¼ºÃµÄ¿ª¶Ë£¬Ê×ÏÈÐèҪ׼±¸ºÃ´úÂëµÄĿ¼½á¹¹ºÍ²¿Êð·½Ê½£¬¾ÍÈçͬÐÞ·¿×ÓÒªÏÈ´î½ÅÊּܡ£±¾Õ½«½éÉÜÓëÖ®Ïà¹ØµÄ¸÷ÖÖ֪ʶ¡£

Ä£¿é·¾¶½âÎö¹æÔò

ÎÒÃÇÒѾ­ÖªµÀ£¬requireº¯ÊýÖ§³Öб¸Ü£¨/£©»òÅÌ·û£¨C:£©¿ªÍ·µÄ¾ø¶Ô·¾¶£¬Ò²Ö§³Ö./¿ªÍ·µÄÏà¶Ô·¾¶¡£µ«ÕâÁ½ÖÖ·¾¶ÔÚÄ£¿éÖ®¼ä½¨Á¢ÁËÇ¿ñîºÏ¹ØÏµ£¬Ò»µ©Ä³¸öÄ£¿éÎļþµÄ´æ·ÅλÖÃÐèÒª±ä¸ü£¬Ê¹ÓøÃÄ£¿éµÄÆäËüÄ£¿éµÄ´úÂëÒ²ÐèÒª¸ú×ŵ÷Õû£¬±äµÃÇ£Ò»·¢¶¯È«Éí¡£Òò´Ë£¬requireº¯ÊýÖ§³ÖµÚÈýÖÖÐÎʽµÄ·¾¶£¬Ð´·¨ÀàËÆÓÚfoo/bar£¬²¢ÒÀ´Î°´ÕÕÒÔϹæÔò½âÎö·¾¶£¬Ö±µ½ÕÒµ½Ä£¿éλÖá£

1.ÄÚÖÃÄ£¿é

Èç¹û´«µÝ¸ørequireº¯ÊýµÄÊÇNodeJSÄÚÖÃÄ£¿éÃû³Æ£¬²»×ö·¾¶½âÎö£¬Ö±½Ó·µ»ØÄÚ²¿Ä£¿éµÄµ¼³ö¶ÔÏó£¬ÀýÈçrequire('fs')¡£

2.node_modulesĿ¼

NodeJS¶¨ÒåÁËÒ»¸öÌØÊâµÄnode_modulesĿ¼ÓÃÓÚ´æ·ÅÄ£¿é¡£ÀýÈçij¸öÄ£¿éµÄ¾ø¶Ô·¾¶ÊÇ/home/user/hello.js£¬ÔÚ¸ÃÄ£¿éÖÐʹÓÃrequire('foo/bar')·½Ê½¼ÓÔØÄ£¿éʱ£¬ÔòNodeJSÒÀ´Î³¢ÊÔʹÓÃÒÔÏ·¾¶¡£

/home/user/node_modules/foo/bar
/home/node_modules/foo/bar
/node_modules/foo/bar

3.NODE_PATH»·¾³±äÁ¿

ÓëPATH»·¾³±äÁ¿ÀàËÆ£¬NodeJSÔÊÐíͨ¹ýNODE_PATH»·¾³±äÁ¿À´Ö¸¶¨¶îÍâµÄÄ£¿éËÑË÷·¾¶¡£NODE_PATH»·¾³±äÁ¿Öаüº¬Ò»µ½¶à¸öĿ¼·¾¶£¬Â·¾¶Ö®¼äÔÚ*nixÏÂʹÓÃ:·Ö¸ô£¬ÔÚWindowsÏÂʹÓÃ;·Ö¸ô¡£ÀýÈ綨ÒåÁËÒÔÏÂNODE_PATH»·¾³±äÁ¿£º

NODE_PATH=/home/user/lib:/home/lib

µ±Ê¹ÓÃrequire('foo/bar')µÄ·½Ê½¼ÓÔØÄ£¿éʱ£¬ÔòNodeJSÒÀ´Î³¢ÊÔÒÔÏ·¾¶¡£

/home/user/lib/foo/bar
/home/lib/foo/bar

°ü£¨package£©

ÎÒÃÇÒѾ­ÖªµÀÁËJSÄ£¿éµÄ»ù±¾µ¥Î»Êǵ¥¸öJSÎļþ£¬µ«¸´ÔÓЩµÄÄ£¿éÍùÍùÓɶà¸ö×ÓÄ£¿é×é³É¡£ÎªÁ˱ãÓÚ¹ÜÀíºÍʹÓã¬ÎÒÃÇ¿ÉÒÔ°ÑÓɶà¸ö×ÓÄ£¿é×é³ÉµÄ´óÄ£¿é³Æ×ö°ü£¬²¢°ÑËùÓÐ×ÓÄ£¿é·ÅÔÚͬһ¸öĿ¼Àï¡£

ÔÚ×é³ÉÒ»¸ö°üµÄËùÓÐ×ÓÄ£¿éÖУ¬ÐèÒªÓÐÒ»¸öÈë¿ÚÄ£¿é£¬Èë¿ÚÄ£¿éµÄµ¼³ö¶ÔÏó±»×÷Ϊ°üµÄµ¼³ö¶ÔÏó¡£ÀýÈçÓÐÒÔÏÂĿ¼½á¹¹¡£

- /home/user/lib/
- cat/
head.js
body.js
main.js

ÆäÖÐcatĿ¼¶¨ÒåÁËÒ»¸ö°ü£¬ÆäÖаüº¬ÁË3¸ö×ÓÄ£¿é¡£main.js×÷ΪÈë¿ÚÄ£¿é£¬ÆäÄÚÈÝÈçÏ£º

var head = require('./head');
var body = require('./body');

exports.create = function (name) {
return {
name: name,
head: head.create(),
body: body.create()
};
};

ÔÚÆäËüÄ£¿éÀïʹÓðüµÄʱºò£¬ÐèÒª¼ÓÔØ°üµÄÈë¿ÚÄ£¿é¡£½Ó×ÅÉÏÀý£¬Ê¹ÓÃrequire('/home/user/lib/cat/main')ÄܴﵽĿµÄ£¬µ«ÊÇÈë¿ÚÄ£¿éÃû³Æ³öÏÖÔÚ·¾¶Àï¿´ÉÏÈ¥²»ÊǸöºÃÖ÷Òâ¡£Òò´ËÎÒÃÇÐèÒª×öµã¶îÍâµÄ¹¤×÷£¬ÈðüʹÓÃÆðÀ´¸üÏñÊǵ¥¸öÄ£¿é¡£

index.js

µ±Ä£¿éµÄÎļþÃûÊÇindex.js£¬¼ÓÔØÄ£¿éʱ¿ÉÒÔʹÓÃÄ£¿éËùÔÚĿ¼µÄ·¾¶´úÌæÄ£¿éÎļþ·¾¶£¬Òò´Ë½Ó×ÅÉÏÀý£¬ÒÔÏÂÁ½ÌõÓï¾äµÈ¼Û¡£

var cat = require('/home/user/lib/cat');
var cat = require('/home/user/lib/cat/index');

ÕâÑù´¦Àíºó£¬¾ÍÖ»ÐèÒª°Ñ°üĿ¼·¾¶´«µÝ¸ørequireº¯Êý£¬¸Ð¾õÉÏÕû¸öĿ¼±»µ±×÷µ¥¸öÄ£¿éʹÓ㬸üÓÐÕûÌå¸Ð¡£

package.json

Èç¹ûÏë×Ô¶¨ÒåÈë¿ÚÄ£¿éµÄÎļþÃûºÍ´æ·ÅλÖ㬾ÍÐèÒªÔÚ°üĿ¼Ï°üº¬Ò»¸öpackage.jsonÎļþ£¬²¢ÔÚÆäÖÐÖ¸¶¨Èë¿ÚÄ£¿éµÄ·¾¶¡£ÉÏÀýÖеÄcatÄ£¿é¿ÉÒÔÖØ¹¹ÈçÏ¡£

- /home/user/lib/
- cat/
+ doc/
- lib/
head.js
body.js
main.js
+ tests/
package.json

ÆäÖÐpackage.jsonÄÚÈÝÈçÏ¡£

{
"name": "cat",
"main": "./lib/main.js"
}

Èç´ËÒ»À´£¬¾ÍͬÑù¿ÉÒÔʹÓÃrequire('/home/user/lib/cat')µÄ·½Ê½¼ÓÔØÄ£¿é¡£NodeJS»á¸ù¾Ý°üĿ¼ÏµÄpackage.jsonÕÒµ½Èë¿ÚÄ£¿éËùÔÚλÖá£

ÃüÁîÐгÌÐò

ʹÓÃNodeJS±àдµÄ¶«Î÷£¬ÒªÃ´ÊÇÒ»¸ö°ü£¬ÒªÃ´ÊÇÒ»¸öÃüÁîÐгÌÐò£¬¶øÇ°Õß×îÖÕÒ²»áÓÃÓÚ¿ª·¢ºóÕß¡£Òò´ËÎÒÃÇÔÚ²¿Êð´úÂëʱÐèҪһЩ¼¼ÇÉ£¬ÈÃÓû§¾õµÃ×Ô¼ºÊÇÔÚʹÓÃÒ»¸öÃüÁîÐгÌÐò¡£

ÀýÈçÎÒÃÇÓÃNodeJSдÁ˸ö³ÌÐò£¬¿ÉÒÔ°ÑÃüÁîÐвÎÊýÔ­Ñù´òÓ¡³öÀ´¡£¸Ã³ÌÐòºÜ¼òµ¥£¬ÔÚÖ÷Ä£¿éÄÚʵÏÖÁËËùÓй¦ÄÜ¡£²¢ÇÒдºÃºó£¬ÎÒÃǰѸóÌÐò²¿ÊðÔÚ/home/user/bin/node-echo.jsÕâ¸öλÖá£ÎªÁËÔÚÈκÎĿ¼Ï¶¼ÄÜÔËÐиóÌÐò£¬ÎÒÃÇÐèҪʹÓÃÒÔÏÂÖÕ¶ËÃüÁî¡£

$ node /home/user/bin/node-echo.js Hello World
Hello World

ÕâÖÖʹÓ÷½Ê½¿´ÆðÀ´²»ÔõôÏñÊÇÒ»¸öÃüÁîÐгÌÐò£¬Ï±ߵIJÅÊÇÎÒÃÇÆÚÍûµÄ·½Ê½¡£

$ node-echo Hello World

*nix

ÔÚ*nixϵͳÏ£¬ÎÒÃÇ¿ÉÒÔ°ÑJSÎļþµ±×÷shell½Å±¾À´ÔËÐУ¬´Ó¶ø´ïµ½ÉÏÊöÄ¿µÄ£¬¾ßÌå²½ÖèÈçÏ£º

1.ÔÚshell½Å±¾ÖУ¬¿ÉÒÔͨ¹ý#!×¢ÊÍÀ´Ö¸¶¨µ±Ç°½Å±¾Ê¹ÓõĽâÎöÆ÷¡£ËùÒÔÎÒÃÇÊ×ÏÈÔÚnode-echo.jsÎļþ¶¥²¿Ôö¼ÓÒÔÏÂÒ»ÐÐ×¢ÊÍ£¬±íÃ÷µ±Ç°½Å±¾Ê¹ÓÃNodeJS½âÎö¡£

#! /usr/bin/env node

NodeJS»áºöÂÔµôλÓÚJSÄ£¿éÊ×ÐеÄ#!×¢ÊÍ£¬²»±Øµ£ÐÄÕâÐÐ×¢ÊÍÊÇ·Ç·¨Óï¾ä¡£

2.È»ºó£¬ÎÒÃÇʹÓÃÒÔÏÂÃüÁÓènode-echo.jsÎļþÖ´ÐÐȨÏÞ¡£

$ chmod +x /home/user/bin/node-echo.js

3.×îºó£¬ÎÒÃÇÔÚPATH»·¾³±äÁ¿ÖÐÖ¸¶¨µÄij¸öĿ¼Ï£¬ÀýÈçÔÚ/usr/local/binϱߴ´½¨Ò»¸öÈíÁ´Îļþ£¬ÎļþÃûÓëÎÒÃÇÏ£ÍûʹÓõÄÖÕ¶ËÃüÁîͬÃû£¬ÃüÁîÈçÏ£º

$ sudo ln -s /home/user/bin/node-echo.js /usr/local/bin/node-echo

ÕâÑù´¦Àíºó£¬ÎÒÃǾͿÉÒÔÔÚÈκÎĿ¼ÏÂʹÓÃnode-echoÃüÁîÁË¡£

Windows

ÔÚWindowsϵͳϵÄ×ö·¨ÍêÈ«²»Í¬£¬ÎÒÃǵÿ¿.cmdÎļþÀ´½â¾öÎÊÌâ¡£¼ÙÉènode-echo.js´æ·ÅÔÚC:\Users\user\binĿ¼£¬²¢ÇÒ¸ÃĿ¼ÒѾ­Ìí¼Óµ½PATH»·¾³±äÁ¿ÀïÁË¡£½ÓÏÂÀ´ÐèÒªÔÚ¸ÃĿ¼ÏÂн¨Ò»¸öÃûΪnode-echo.cmdµÄÎļþ£¬ÎļþÄÚÈÝÈçÏ£º

@node "C:\User\user\bin\node-echo.js" %*

ÕâÑù´¦Àíºó£¬ÎÒÃǾͿÉÒÔÔÚÈκÎĿ¼ÏÂʹÓÃnode-echoÃüÁîÁË¡£

¹¤³ÌĿ¼

Á˽âÁËÒÔÉÏ֪ʶºó£¬ÏÖÔÚÎÒÃÇ¿ÉÒÔÀ´ÍêÕûµØ¹æ»®Ò»¸ö¹¤³ÌĿ¼ÁË¡£ÒÔ±àдһ¸öÃüÁîÐгÌÐòΪÀý£¬Ò»°ãÎÒÃÇ»áͬʱÌṩÃüÁîÐÐģʽºÍAPIģʽÁ½ÖÖʹÓ÷½Ê½£¬²¢ÇÒÎÒÃÇ»á½èÖúÈý·½°üÀ´±àд´úÂë¡£³ýÁË´úÂëÍ⣬һ¸öÍêÕûµÄ³ÌÐòÒ²Ó¦¸ÃÓÐ×Ô¼ºµÄÎĵµºÍ²âÊÔÓÃÀý¡£Òò´Ë£¬Ò»¸ö±ê×¼µÄ¹¤³ÌĿ¼¶¼¿´ÆðÀ´ÏñϱßÕâÑù¡£

- /home/user/workspace/node-echo/   # ¹¤³ÌĿ¼
- bin/ # ´æ·ÅÃüÁîÐÐÏà¹Ø´úÂë
node-echo
+ doc/ # ´æ·ÅÎĵµ
- lib/ # ´æ·ÅAPIÏà¹Ø´úÂë
echo.js
- node_modules/ # ´æ·ÅÈý·½°ü
+ argv/
+ tests/ # ´æ·Å²âÊÔÓÃÀý
package.json # ÔªÊý¾ÝÎļþ
README.md # ˵Ã÷Îļþ

ÆäÖв¿·ÖÎļþÄÚÈÝÈçÏ£º

/* bin/node-echo */
var argv = require('argv'),
echo = require('../lib/echo');
console.log(echo(argv.join(' ')));

/* lib/echo.js */
module.exports = function (message) {
return message;
};

/* package.json */
{
"name": "node-echo",
"main": "./lib/echo.js"
}

ÒÔÉÏÀý×ÓÖзÖÀà´æ·ÅÁ˲»Í¬ÀàÐ͵ÄÎļþ£¬²¢Í¨¹ýnode_moudlesĿ¼ֱ½ÓʹÓÃÈý·½°üÃû¼ÓÔØÄ£¿é¡£´ËÍ⣬¶¨ÒåÁËpackage.jsonÖ®ºó£¬node-echoĿ¼Ҳ¿É±»µ±×÷Ò»¸ö°üÀ´Ê¹Óá£

NPM

NPMÊÇËæÍ¬NodeJSÒ»Æð°²×°µÄ°ü¹ÜÀí¹¤¾ß£¬Äܽâ¾öNodeJS´úÂ벿ÊðÉϵĺܶàÎÊÌ⣬³£¼ûµÄʹÓó¡¾°ÓÐÒÔϼ¸ÖÖ£º

1.ÔÊÐíÓû§´ÓNPM·þÎñÆ÷ÏÂÔØ±ðÈ˱àдµÄÈý·½°üµ½±¾µØÊ¹Óá£

2. ÔÊÐíÓû§´ÓNPM·þÎñÆ÷ÏÂÔØ²¢°²×°±ðÈ˱àдµÄÃüÁîÐгÌÐòµ½±¾µØÊ¹Óá£

3. ÔÊÐíÓû§½«×Ô¼º±àдµÄ°ü»òÃüÁîÐгÌÐòÉÏ´«µ½NPM·þÎñÆ÷¹©±ðÈËʹÓá£

¿ÉÒÔ¿´µ½£¬NPM½¨Á¢ÁËÒ»¸öNodeJSÉú̬Ȧ£¬NodeJS¿ª·¢ÕߺÍÓû§¿ÉÒÔÔÚÀï±ß»¥Í¨ÓÐÎÞ¡£ÒÔÏ·ֱð½éÉÜÕâÈýÖÖ³¡¾°ÏÂÔõÑùʹÓÃNPM¡£

ÏÂÔØÈý·½°ü

ÐèҪʹÓÃÈý·½°üʱ£¬Ê×ÏȵÃÖªµÀÓÐÄÄЩ°ü¿ÉÓá£ËäÈ»npmjs.orgÌṩÁ˸öËÑË÷¿ò¿ÉÒÔ¸ù¾Ý°üÃûÀ´ËÑË÷£¬µ«Èç¹ûÁ¬ÏëʹÓõÄÈý·½°üµÄÃû×Ö¶¼²»È·¶¨µÄ»°£¬¾ÍÇë°Ù¶Èһϰɡ£ÖªµÀÁ˰üÃûºó£¬±ÈÈçÉϱßÀý×ÓÖеÄargv£¬¾Í¿ÉÒÔÔÚ¹¤³ÌĿ¼Ï´ò¿ªÖÕ¶Ë£¬Ê¹ÓÃÒÔÏÂÃüÁîÀ´ÏÂÔØÈý·½°ü¡£

$ npm install argv
...
argv@0.0.2 node_modules\argv

ÏÂÔØºÃÖ®ºó£¬argv°ü¾Í·ÅÔÚÁ˹¤³ÌĿ¼ÏµÄnode_modulesĿ¼ÖУ¬Òò´ËÔÚ´úÂëÖÐÖ»ÐèҪͨ¹ýrequire('argv')µÄ·½Ê½¾ÍºÃ£¬ÎÞÐèÖ¸¶¨Èý·½°ü·¾¶¡£

ÒÔÉÏÃüÁîĬÈÏÏÂÔØ×îаæÈý·½°ü£¬Èç¹ûÏëÒªÏÂÔØÖ¸¶¨°æ±¾µÄ»°£¬¿ÉÒÔÔÚ°üÃûºó±ß¼ÓÉÏ@<version>£¬ÀýÈçͨ¹ýÒÔÏÂÃüÁî¿ÉÏÂÔØ0.0.1°æµÄargv¡£

$ npm install argv@0.0.1
...
argv@0.0.1 node_modules\argv

Èç¹ûʹÓõ½µÄÈý·½°ü±È½Ï¶à£¬ÔÚÖÕ¶ËÏÂÒ»¸ö°üÒ»ÌõÃüÁîµØ°²×°Î´ÃâÌ«ÈËÈâÁË¡£Òò´ËNPM¶Ôpackage.jsonµÄ×Ö¶Î×öÁËÀ©Õ¹£¬ÔÊÐíÔÚÆäÖÐÉêÃ÷Èý·½°üÒÀÀµ¡£Òò´Ë£¬ÉϱßÀý×ÓÖеÄpackage.json¿ÉÒÔ¸ÄдÈçÏ£º

{
"name": "node-echo",
"main": "./lib/echo.js",
"dependencies": {
"argv": "0.0.2"
}
}

ÕâÑù´¦Àíºó£¬ÔÚ¹¤³ÌĿ¼Ï¾ͿÉÒÔʹÓÃnpm installÃüÁîÅúÁ¿°²×°Èý·½°üÁË¡£¸üÖØÒªµÄÊÇ£¬µ±ÒÔºónode-echoÒ²ÉÏ´«µ½ÁËNPM·þÎñÆ÷£¬±ðÈËÏÂÔØÕâ¸ö°üʱ£¬NPM»á¸ù¾Ý°üÖÐÉêÃ÷µÄÈý·½°üÒÀÀµ×Ô¶¯ÏÂÔØ½øÒ»²½ÒÀÀµµÄÈý·½°ü¡£ÀýÈ磬ʹÓÃnpm install node-echoÃüÁîʱ£¬NPM»á×Ô¶¯´´½¨ÒÔÏÂĿ¼½á¹¹¡£

- project/
- node_modules/
- node-echo/
- node_modules/
+ argv/
...
...

Èç´ËÒ»À´£¬Óû§Ö»Ðè¹ØÐÄ×Ô¼ºÖ±½ÓʹÓõÄÈý·½°ü£¬²»ÐèÒª×Ô¼ºÈ¥½â¾öËùÓаüµÄÒÀÀµ¹ØÏµ¡£

°²×°ÃüÁîÐгÌÐò

´ÓNPM·þÎñÉÏÏÂÔØ°²×°Ò»¸öÃüÁîÐгÌÐòµÄ·½·¨ÓëÈý·½°üÀàËÆ¡£ÀýÈçÉÏÀýÖеÄnode-echoÌṩÁËÃüÁîÐÐʹÓ÷½Ê½£¬Ö»Òªnode-echo×Ô¼ºÅäÖúÃÁËÏà¹ØµÄpackage.json×ֶΣ¬¶ÔÓÚÓû§¶øÑÔ£¬Ö»ÐèҪʹÓÃÒÔÏÂÃüÁî°²×°³ÌÐò¡£

$ npm install node-echo -g

²ÎÊýÖеÄ-g±íʾȫ¾Ö°²×°£¬Òò´Ënode-echo»áĬÈϰ²×°µ½ÒÔÏÂλÖ㬲¢ÇÒNPM»á×Ô¶¯´´½¨ºÃ*nixϵͳÏÂÐèÒªµÄÈíÁ´Îļþ»òWindowsϵͳÏÂÐèÒªµÄ.cmdÎļþ¡£

- /usr/local/               # *nixϵͳÏÂ
- lib/node_modules/
+ node-echo/
...
- bin/
node-echo
...
...

- %APPDATA%\npm\ # WindowsϵͳÏÂ
- node_modules\
+ node-echo\
...
node-echo.cmd
...

·¢²¼´úÂë

µÚÒ»´ÎʹÓÃNPM·¢²¼´úÂëǰÐèҪע²áÒ»¸öÕ˺š£ÖÕ¶ËÏÂÔËÐÐnpm adduser£¬Ö®ºó°´ÕÕÌáʾ×ö¼´¿É¡£Õ˺Ÿ㶨ºó£¬½Ó×ÅÎÒÃÇÐèÒª±à¼­package.jsonÎļþ£¬¼ÓÈëNPM±ØÐèµÄ×ֶΡ£½Ó×ÅÉϱßnode-echoµÄÀý×Ó£¬package.jsonÀï±ØÒªµÄ×Ö¶ÎÈçÏ¡£

{
"name": "node-echo", # °üÃû£¬ÔÚNPM·þÎñÆ÷ÉÏÐëÒª±£³ÖΨһ
"version": "1.0.0", # µ±Ç°°æ±¾ºÅ
"dependencies": { # Èý·½°üÒÀÀµ£¬ÐèÒªÖ¸¶¨°üÃûºÍ°æ±¾ºÅ
"argv": "0.0.2"
},
"main": "./lib/echo.js", # Èë¿ÚÄ£¿éλÖÃ
"bin" : {
"node-echo": "./bin/node-echo" # ÃüÁîÐгÌÐòÃûºÍÖ÷Ä£¿éλÖÃ
}
}

Ö®ºó£¬ÎÒÃǾͿÉÒÔÔÚpackage.jsonËùÔÚĿ¼ÏÂÔËÐÐnpm publish·¢²¼´úÂëÁË¡£

°æ±¾ºÅ

ʹÓÃNPMÏÂÔØºÍ·¢²¼´úÂëʱ¶¼»á½Ó´¥µ½°æ±¾ºÅ¡£NPMʹÓÃÓïÒå°æ±¾ºÅÀ´¹ÜÀí´úÂ룬ÕâÀï¼òµ¥½éÉÜһϡ£

ÓïÒå°æ±¾ºÅ·ÖΪX.Y.ZÈý룬·Ö±ð´ú±íÖ÷°æ±¾ºÅ¡¢´Î°æ±¾ºÅºÍ²¹¶¡°æ±¾ºÅ¡£µ±´úÂë±ä¸üʱ£¬°æ±¾ºÅ°´ÒÔÏÂÔ­Ôò¸üС£

+ Èç¹ûÖ»ÊÇÐÞ¸´bug£¬ÐèÒª¸üÐÂZλ¡£

+ Èç¹ûÊÇÐÂÔöÁ˹¦ÄÜ£¬µ«ÊÇÏòϼæÈÝ£¬ÐèÒª¸üÐÂYλ¡£

+ Èç¹ûÓдó±ä¶¯£¬Ïòϲ»¼æÈÝ£¬ÐèÒª¸üÐÂXλ

°æ±¾ºÅÓÐÁËÕâ¸ö±£Ö¤ºó£¬ÔÚÉêÃ÷Èý·½°üÒÀÀµÊ±£¬³ýÁË¿ÉÒÀÀµÓÚÒ»¸ö¹Ì¶¨°æ±¾ºÅÍ⣬»¹¿ÉÒÀÀµÓÚij¸ö·¶Î§µÄ°æ±¾ºÅ¡£ÀýÈç"argv": "0.0.x"±íʾÒÀÀµÓÚ0.0.xϵÁеÄ×îаæargv¡£NPMÖ§³ÖµÄËùÓа汾ºÅ·¶Î§Ö¸¶¨·½Ê½¿ÉÒԲ鿴¹Ù·½Îĵµ¡£

Áé»úÒ»µã

³ýÁ˱¾Õ½éÉܵIJ¿·ÖÍ⣬NPM»¹ÌṩÁ˺ܶ๦ÄÜ£¬package.jsonÀïÒ²ÓкܶàÆäËüÓÐÓõÄ×ֶΡ£³ýÁË¿ÉÒÔÔÚnpmjs.org/doc/²é¿´¹Ù·½ÎĵµÍ⣬ÕâÀïÔÙ½éÉÜһЩNPM³£ÓÃÃüÁî¡£

1.NPMÌṩÁ˺ܶàÃüÁÀýÈçinstallºÍpublish£¬Ê¹ÓÃnpm help¿É²é¿´ËùÓÐÃüÁî¡£

2.ʹÓÃnpm help <command>¿É²é¿´Ä³ÌõÃüÁîµÄÏêϸ°ïÖú£¬ÀýÈçnpm help install¡£

3.ÔÚpackage.jsonËùÔÚĿ¼ÏÂʹÓÃnpm install . -g¿ÉÏÈÔÚ±¾µØ°²×°µ±Ç°ÃüÁîÐгÌÐò£¬¿ÉÓÃÓÚ·¢²¼Ç°µÄ±¾µØ²âÊÔ¡£

4.ʹÓÃnpm update <package>¿ÉÒ԰ѵ±Ç°Ä¿Â¼ÏÂnode_modules×ÓĿ¼Àï±ßµÄ¶ÔӦģ¿é¸üÐÂÖÁ×îа汾¡£

5. ʹÓÃnpm update <package> -g¿ÉÒÔ°ÑÈ«¾Ö°²×°µÄ¶ÔÓ¦ÃüÁîÐгÌÐò¸üÐÂÖÁ×îа档

6. ʹÓÃnpm cache clear¿ÉÒÔÇå¿ÕNPM±¾µØ»º´æ£¬ÓÃÓÚ¶Ô¸¶Ê¹ÓÃÏàͬ°æ±¾ºÅ·¢²¼Ð°汾´úÂëµÄÈË¡£

7. ʹÓÃnpm unpublish <package>@<version>¿ÉÒÔ³·Ïú·¢²¼×Ô¼º·¢²¼¹ýµÄij¸ö°æ±¾´úÂë¡£

С½á

±¾Õ½éÉÜÁËʹÓÃNodeJS±àд´úÂëǰÐèÒª×öµÄ×¼±¸¹¤×÷£¬×ܽáÆðÀ´ÓÐÒÔϼ¸µã£º

1.±àд´úÂëǰÏȹ滮ºÃĿ¼½á¹¹£¬²ÅÄÜ×öµ½ÓÐÌõ²»ÎÉ¡£

2. ÉÓ´óЩµÄ³ÌÐò¿ÉÒÔ½«´úÂë²ð·ÖΪ¶à¸öÄ£¿é¹ÜÀí£¬¸ü´óЩµÄ³ÌÐò¿ÉÒÔʹÓðüÀ´×é֯ģ¿é¡£

3. ºÏÀíʹÓÃnode_modulesºÍNODE_PATHÀ´½âñî°üµÄʹÓ÷½Ê½ºÍÎïÀí·¾¶¡£

4. ʹÓÃNPM¼ÓÈëNodeJSÉú̬Ȧ»¥Í¨ÓÐÎÞ¡£

5. Ïëµ½ÁËÐÄÒǵİüÃûʱÇëÌáǰÔÚNPMÉÏÇÀ×¢¡£

   
2233 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢


Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ


ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢