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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Nodejs¾­Ñé̸
 
  3056  次浏览      28
  2018-5-29
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÍøÂç ,±¾ÎÄÖ÷Ҫ˵һÏÂ֮ǰʹÓÃNodejs¿ª·¢²È¹ýµÄ¿Ó,´óÁ¿µÄ˵Ã÷¼°Ìî¿Ó·½·¨¡£

ǰÑÔ

1.´úÂ뾫¼ò

¾¡Á¿Ê¹Óþ«¼òµÄ´úÂ룬Nodejs ´úÂë´¦ÀíËÙ¶ÈÊÇÒì³£ÂýµÄ£¬²»ÈçÆäËûÖ÷Á÷ÓïÑÔ£¬ÉõÖÁ²»Èçpython£¬Ê¹Óþ«¼ò´úÂëÒ²ÊǶÔ×Ô¼ºÄÜÁ¦µÄÌáÉýÓ뿼Ñé¡£ÎÒÃÇÔÚ×ö¿¨µØÑÇÉ̳ÇÏîĿʱ£¬¶Ô·½¹¤³ÌʦҪÇóͬһº¯ÊýÄÚ£¬Í¬Ò»±äÁ¿²»¿ÉÒÔ³öÏÖÈý´Î£¨loopÖнöËã×÷Ò»´Î£©¡£´úÂ뾫¼òÁË£¬¾Í»á±äµÃƯÁÁ£¬²éÕÒÎÊÌâÒ²±äµÃÈÝÒ×£¬Ò²·½±ãºóÃæµÄ¹¤³Ìʦ½ÓÊÖ´¦Àí¡£

²»½¨ÒéÔÚNodejs´úÂëÖÐÔÙÌ×ÓÃÆäËû¿ò¼Ü£¬ÀýÈçcoffeescript£¬NodeÓëCoffee»á±¨²»Í¬µÄ´íÎó¡£

2.¾«È·°æ±¾ºÅ

Õâ¸ö¿Ó£¬¹À¼ÆºÜ¶àÈ˶¼²È¹ý£¬¿ª·¢»·¾³Óëʵ¼Ê»·¾³²»Ò»Ö¡£Í¬Ê¿ª·¢Ò»¸öÄ£¿é£¬±¾µØÁªµ÷ÊÇûÎÊÌâµÄ£¬µ«Êǵ½server¶Ëºó£¬¸ù±¾ÎÞ·¨Æô¶¯£¬ÕÒÁËһȦ£¬×îºó·¢ÏÖͬʱ¾µØ¿ª·¢Ê¹ÓõÄÊÇNodeµÄ»¯Ê¯°æ£¬¾ÍÊÇÕâô¸öСÊèºö£¬ÈÃÎÒÃÇÀË·ÑÁËÒ»ÉÏÎçÈ¥ÕÒÔ­Òò¡£

²¹³äһЩNode°æ±¾¹ÜÀíµÄ֪ʶ£º

* //ÈÎÒâ°æ±¾
1.1.0 //Ö¸¶¨°æ±¾
~1.1.0 //>=1.1.0 && < 1.2.0
^1.1.0 //>=1.1.0 && < 2.0.0

3.µ¥Ôª²âÊÔ

Ò»¶¨ÒªÐ´µ¥Ôª²âÊÔÓÃÀý£¬³¢ÊÔ±¾µØÔËÐУ¬²âÊԳɹ¦ºóÔÙÉÏ´«ÖÁ·þÎñÆ÷£¬Óм¸´ÎÐÞ¸ÄÍê´úÂ루¼òµ¥¼¸ÐУ©ÒÔΪÔõô¿ÉÄܳöÎÊÌ⣬½á¹ûÒ»ÖØÆô·þÎñ¾Í¹ÒÁË£¬¿ÉÄÜÉÙ¸öÀ¨ºÅÖ®ÀàµÄ¡£

MochaÊÇÎÒ×ʹÓõĵ¥Ôª²âÊÔ¹¤¾ß£º

»ù±¾¸ÅÄ

describe()²âÊÔÇø¿é£¬¿ÉÒÔ¶à²ãÏâÌס£

it()²âÊÔÓÃÀý£¬Ò»¸ö²âÊÔÇø¿é¿ÉÒÔ°üº¬¶à¸ö²âÊÔÓÃÀý¡£

²âÊÔ¹³×Ó£º

before() ÔÚ±¾Çø¿éËùÓвâÊÔÓÃÀýÖ´ÐÐ֮ǰִÐС£

after() ÔÚ±¾Çø¿éËùÓвâÊÔÓÃÀýÖ´ÐÐÖ®ºóÖ´ÐС£

beforeEach() ÔÚ±¾Çø¿éÿ¸ö²âÊÔÓÃÀý֮ǰִÐС£

afterEach() ÔÚ±¾Çø¿éÿ¸ö²âÊÔÓÃÀýÖ®ºóÖ´ÐС£

¶ÏÑÔ£º

chai ;Mocha±¾Éíû¶ÏÑÔ£¬chai¿ÉÒÔ×÷ΪËüµÄ¶ÏÑÔ¿â¡£chai-as-promise Õâ¸ö¿âÖ§³Öpromise¡£

ÓÃÀý¹ÜÀí£º

only()²âÊÔÇø¿éÓë²âÊÔÓÃÀý¶¼Ö§³Öonly·½·¨£¬Ö»ÔËÐÐÐÞÊεIJâÊÔÇø¿é»òÓÃÀý¡£

skip()²âÊÔÇø¿éÓë²âÊÔÓÃÀý¶¼Ö§³Öskip·½·¨£¬»áÌø¹ýÐÞÊεIJâÊÔÇø¿é»òÓÃÀý¡£

onlyÓëskip¹²ÓÃʱ£¬only»áºöÂÔµôskip¡£

Òì²½µ÷Óãº

done(),²âÊÔ·½·¨Òì²½Íê³Éºó£¬±»µ÷Óá£Ò»¸öit²âÊÔʵÀýÖÐÖ»ÄÜÓÐÒ»¸ödone()¡£

Àý£º

var assert = require('chai').assert;

function add() {
return Array.prototype.slice.call(arguments).reduce(function (prev, curr) {
return prev + curr;
}, 0);
}

describe('add()', function () {
var tests = [
{ args: [1, 2], expected: 3 },
{ args: [1, 2, 3], expected: 6 }
];

tests.forEach(function (test) {
it('test adds ' + test.args.length + ' args', function () {
var res = add.apply(null, test.args);
assert.equal(res, test.expected);
});
});
});

4.debug

¿ª·¢±ÜÃâ²»Á˵÷ÊÔdebug£¬ºÜ¶àÈËϲ»¶Ê¹ÓÃconsole.log()½øÐе÷ÊÔ£¬Õâ¸öȷʵÂùºÃÓõ쬵«Êǵ÷ʽºóÈçºÎ´¦Àíconsole.log() È´³ÉΪÁËÀÏ´óÄѵÄÎÊÌ⣬עÊͰɣ¬»á¶à³öºÜ¶àÎÞÓõĴúÂ룬ɾµô°É£¬ºóÃæ¿ÉÄÜ»¹»áʹÓõ½¡£

ÕâÀÎÒÍÆ¼öʹÓÃdebugÄ£¿éΪÀý£º

¿ªÆôdebugģʽ£¨ÔÚcmdÉÏÊäÈ룩£º

var debug = require('debug')('myapp:main');
debug('ÏÖÔÚµÄʱ¼äÊÇ %s' , new Date());

set debug = myapp:main

È»ºóÊäÈëÒªÖ´ÐеÄÎļþ£ºnode app.js

·µ»Ø£ºmyapp£ºmain ÏÖÔÚµÄʱ¼äÊÇ 2018-05-03 18:25:30

¹Ø±Õdebugģʽ£º set debug = null

5.ÅäÖÃÎļþÊéд

ÿ¸ö¹¤³Ì϶¼Òª½¨Á¢Ò»¸öÅäÖÃÎļþ£¬Èçconfig.js£¬¶ø²»ÊÇдËÀÔÚ³ÌÐòÀ¼Çס½ÓÊÖÄ㹤×÷µÄÈË£¬ÊDz»¶®ÄãµÄ±à³ÌÂß¼­µÄÈË£¬ËùÒÔµ½Ê±ºòÄãÒª¸æËß¶Ô·½ÄÄЩÊÇ¿ÉÅäÄÄЩÊDz»¿ÉÅ䣬ºóÃæÄã»á·Ç³£Âé·³¡£

ÅäÖÃÎļþÀý£º

{
"app": 3000,
"mongo": {
"host": "localhost",
"port": 27017
},
"redis": {
"host": "localhost",
"port": 6379
}
...
}

6.±ÜÃâʹÓÃͬ²½´úÂë

NodejsµÄÒ»¸öÏÔÖøÌØÕ÷£º´ÓÉϵ½ÏµÄÉè¼Æ¶¼ÊÇΪÁËʵÏÖÒì²½¡£Îļþ²Ù×÷¾ÍÓÐͬ²½ºÍÒì²½µÄ°æ±¾£¬¼´Ê¹Ê¹ÓÃÂß¼­À´¿ØÖÆÍ¬²½·½·¨£¬µ«»¹ÊÇÓпÉÄܲ»×¢ÒâµØÓõ½×èÈûÍⲿµÄº¯Êý¿â¡£ÕâÑù×ö£¬¶ÔÐÔÄÜÓ°Ï켫´ó¡£

//ºÃµÄÊéд·½Ê½
fs.writeFile('message.txt','Hello Node',function(err) {
console.log("It's saved and the server remains responsive!");
});

//»µµÄÊéд·½Ê½£¨Ó°ÏìÐÔÄÜ£©
fs.writeFileSync('message.txt', 'Hello Node');
console.log("It's saved, but you just blocked ALL requests!");

7.²»ÒªÈþ²Ì¬×ÊԴʹÓÃNodejs

¶ÔÓÚcssºÍͼƬµÈ¾²Ì¬×ÊÔ´£¬Óñê×¼µÄwebserver¶ø²»ÊÇNodejs¡£ÎÒÃÇʹÓõÄÊÇCDNÀ´´æ´¢¾²Ì¬×ÊÔ´¡£

ºÃ´¦£º

¡¡¡¡1£©¼õÉÙnodejs·þÎñÆ÷µÄ¸ºÔØ¡£

¡¡¡¡2£©CDN¿ÉÒÔÈþ²Ì¬ÄÚÈÝÔÚÀëÓû§½Ï½üµÄ·þÎñÆ÷ÉÏ´«µÝ£¬¼õÉٵȴýʱ¼ä¡£

8.ÔÚ¿Í»§¶ËäÖȾ

ÎÒÃDZȽÏÒ»ÏÂÔÚ¿Í»§¶ËäÖȾºÍÔÚ·þÎñ¶ËäÖȾµÄÇø±ð£º

·þÎñ¶ËäÖȾ

<!DOCTYPE html>
<html>
<head>
<title>·þÎñ¶ËäÖȾ</title>
</head>
<body>
<div>
py1988!
</div>
</body>
</html>

¿Í»§¶ËäÖȾ

<!DOCTYPE html>
<html>
<head>
<title>¿Í»§¶ËäÖȾ</title>
</head>
<body>
<div>
<%= name %>!
</div>
</body>
</html>

javascriptÎı¾ÄÜ»º´æÔÚä¯ÀÀÆ÷»òÕß±¾µØ£¬ËùÓгõʼ¼ÓÔØÒÔºó£¬Î¨Ò»Òª·¢Ë͸ø¿Í»§¶ËµÄ¾ÍÊÇjson£¬ÕâÊÇ×îÓÐЧµÄ£¬¼«´ó¼õÉÙNodejs serverµÄ¸ºÔØÁ¿¡£

9.²¢Ðл¯

ÊÔ×ÅÈÃËùÓеÄ×èÈû²Ù×÷²¢Ðл¯£¬Õ⽫¼õÉÙ×èÈû²Ù×÷µÄµÈ´ýʱ¼ä£¬ÎªÁ˱£³Ö»Øµ÷ºÍ´íÎó´¦ÀíµÃ¸É¾»£¬ÎÒÃÇÐèҪʹÓÃһЩ¼à¿Ø¹¤¾ß¡£

10.¾¡Á¿Ê¹Óöþ½øÖÆÄ£¿é

ʹÓöþ½øÖÆÄ£¿éÈ¡´újavascriptÄ£¿é£¨¾¡Á¿£©£»Èç´ËÐÔÄÜ»áÌáÉýÒ»´ó½Ø¡£

var crypto = require('crypto');
var hash = crypto.createHmac("sha1",key).update

(signatureBase).digest("base64");

Ïà¹ØÎÄÕÂ

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

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

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

   
3056 ´Îä¯ÀÀ       28

Hello World!