±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÍøÂç
,±¾ÎÄÖ÷Ҫ˵һÏÂ֮ǰʹÓÃ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"); |
|