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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
³õ²½ÈÏʶNode.js
 
  3254  次浏览      27
  2018-5-14 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÍøÂç ½éÉÜÁËCommonJS¹æ·¶£¬È«¾Ö¶ÔÏó£¬ÄÚÖÃÄ£¿é£¬Node.jsʵÏÖHTTP·þÎñÆ÷³ÌÐò£¬Node.jsʵÏÖÎļþ·þÎñÆ÷µÈ֪ʶ¡£

CommonJS¹æ·¶

ÿһ¸öjsÎļþ¶¼ÊÇÒ»¸öÄ£¿é,jsÎļþµÄÃû×Ö¾ÍÊÇÄ£¿éµÄÃû×Ö¡£Ã¿¸öÄ£¿éÄÚ²¿Ê¹ÓõıäÁ¿ÃûºÍº¯ÊýÃû»¥²»³åÍ»¡£

Ò»¸öÄ£¿éÏëÒª¶ÔÍⱩ¶±äÁ¿£¨º¯ÊýÒ²ÊDZäÁ¿£©,¿ÉÒÔÓÃmodule.exports = variable,»¹¿ÉÒÔexports.variable=variable;Èç¹ûÒªÊä³öÒ»¸ö¼üÖµ¶ÔÏó{}£¬¿ÉÒÔÀûÓÃexportsÕâ¸öÒÑ´æÔڵĿնÔÏó{}£¬²¢¼ÌÐøÔÚÉÏÃæÌí¼ÓеļüÖµ£»Èç¹ûÒªÊä³öÒ»¸öº¯Êý»òÊý×飬±ØÐëÖ±½Ó¶Ômodule.exports¶ÔÏó¸³Öµ¡£

Ò»¸öÄ£¿éÒªÒýÓÃÆäËûÄ£¿é±©Â¶µÄ±äÁ¿£¬ÓÃvar ref = require('module_name');¾ÍÄõ½ÁËÒýÓÃÄ£¿éµÄ±äÁ¿¡£ÔÚÒýÓÃÄ£¿éʱҪ°ÑÏà¶Ô·¾¶Ð´¶Ô£¬Ö±½Óдģ¿éÃû»áÒÀ´ÎÔÚÄÚÖÃÄ£¿é¡¢È«¾ÖÄ£¿éºÍµ±Ç°Ä£¿éϲéÕÒ¡£

È«¾Ö¶ÔÏó

node.jsµÄÈ«¾Ö¶ÔÏóglobalÏ൱ÓÚä¯ÀÀÆ÷»·¾³ÖеÄÈ«¾Ö¶ÔÏówindow¡£

¸ù¾ÝÈ«¾Ö¶ÔÏóÅжÏJavaScriptµÄÖ´Ðл·¾³;

if(typeof(window)==='undefined'){
console.log('node.js');
}else{
console.log('browser');
}

node.jsµÄprocess¶ÔÏó

process=global.process,´ú±íµ±Ç°Node.js½ø³Ì;

process.nextTick(function(){});nextTickÖеĺ¯Êý²»»áÁ¢¿ÌÖ´ÐУ¬¶øÊÇÒªµÈµ½ÏÂÒ»´ÎʼþÑ­»·;

process.on('exit',function(){});ÔÚ³ÌÐò¼´½«Í˳öʱִÐиûص÷º¯Êý¡£

ÄÚÖÃÄ£¿é

fsÄ£¿é

Îļþϵͳģ¿é£¬¸ºÔð¶ÁдÎļþ¡£fsÄ£¿éͬʱÌṩÁËÒì²½ºÍͬ²½µÄ·½·¨¡£

Òì²½·½·¨

ÒòΪJavaScriptµÄµ¥Ïß³ÌÄ£ÐÍ£¬Ö´ÐÐIO²Ù×÷ʱ£¬JavaScript´úÂëÎÞÐèµÈ´ý£¬¶øÊÇ´«Èë»Øµ÷º¯Êýºó£¬¼ÌÐøÖ´ÐкóÐøJavaScript´úÂë¡£

$.getJSON ('http://example.com /ajax',function(data ) {
console.log ('IO½á¹û·µ»ØÖ´ÐÐ...');
});
console.log ('²»µÈ´ýIO½á¹ûÖ±½ÓÖ´ÐкóÐø´úÂë...');

ͬ²½·½·¨

ͬ²½·½·¨£ºÍ¬²½µÄIO²Ù×÷ÔòÐèÒªµÈ´ýº¯Êý·µ»Ø¡£

var data=getJSONSync ('http://example.com/ajax');

ͬ²½²Ù×÷µÄºÃ´¦ÊÇ´úÂë¼òµ¥£¬È±µãÊdzÌÐò½«µÈ´ýIO²Ù×÷£¬Ôڵȴýʱ¼äÄÚ£¬ÎÞ·¨ÏìÓ¦ÆäËüÈκÎʼþ¡£¶øÒì²½¶ÁÈ¡²»ÓõȴýIO²Ù×÷£¬µ«´úÂë½ÏÂé·³¡£

Òì²½Óëͬ²½

ÓÉÓÚNode»·¾³Ö´ÐеÄJavaScript´úÂëÊÇ·þÎñÆ÷¶Ë´úÂ룬ËùÒÔ£¬¾ø´ó²¿·ÖÐèÒªÔÚ·þÎñÆ÷ÔËÐÐÆÚ·´¸´Ö´ÐÐÒµÎñÂß¼­µÄ´úÂ룬±ØÐëʹÓÃÒì²½´úÂ룬·ñÔò£¬Í¬²½´úÂëÔÚÖ´ÐÐʱÆÚ£¬·þÎñÆ÷½«Í£Ö¹ÏìÓ¦£¬ÒòΪJavaScriptÖ»ÓÐÒ»¸öÖ´ÐÐÏ̡߳£

·þÎñÆ÷Æô¶¯Ê±Èç¹ûÐèÒª¶ÁÈ¡ÅäÖÃÎļþ£¬»òÕß½áÊøÊ±ÐèҪдÈ뵽״̬Îļþʱ£¬¿ÉÒÔʹÓÃͬ²½´úÂ룬ÒòΪÕâЩ´úÂëÖ»ÔÚÆô¶¯ºÍ½áÊøÊ±Ö´ÐÐÒ»´Î£¬²»Ó°Ïì·þÎñÆ÷Õý³£ÔËÐÐʱµÄÒì²½Ö´ÐС£

Òì²½¶ÁÎļþ

'use strict';
var fs=require('fs');
fs.readFile('sample.txt','utf-8',function (err ,data ) {
if(err){
console.log (err);
}else{
console.log (data);
}
});
console.log ('start process');

sample.txtÎļþ±ØÐëÔÚµ±Ç°Ä¿Â¼£¬utf-8ΪÎļþµÄ±àÂ룻

node.js±ê×¼µÄ»Øµ÷º¯Êý£¬µÚÒ»¸ö²ÎÊý´ú±í´íÎóÐÅÏ¢£¬µÚ¶þ¸ö²ÎÊý´ú±í½á¹û£»

µ±¶ÁÈ¡¶þ½øÖÆÎļþʱ£¬²»´«ÈëÎļþ±àÂëʱ£¬»Øµ÷º¯ÊýµÄdata²ÎÊý½«·µ»ØÒ»¸öBuffer¶ÔÏó¡£ÔÚNode.jsÖУ¬Buffer¶ÔÏó¾ÍÊÇÒ»¸ö°üº¬Áã¸ö»òÈÎÒâ¸ö×Ö½ÚµÄÊý£¨×¢ÒâºÍArray²»Í¬£©¡£

Buffer¶ÔÏóÓëStringÖ®¼äµÄת»»£º

Buffer-> String:var text=data.toString ('utf-8');
String-> Buffer:var buf=Buffer.from (text,'utf-8 ');

ͬ²½¶ÁÎļþ

'use strict';
var fs=require('fs');
try{
var data=fs.readFileSync ('sample.txt','utf-8');
console .log (data);
}catch (err){
console.log (err);
}
console.log ('start');

Ò첽дÎļþ

'use strict'
var fs=require('fs');
var data='write data into file';
fs.writeFile ('sample.txt',data,function (err){
if (err){
console.log(err);
}else{
console.log('done!');
}
});

writeFile()µÄ²ÎÊýÒÀ´ÎΪÎļþÃû¡¢Êý¾ÝºÍ»Øµ÷º¯Êý¡£Èç¹û´«ÈëµÄÊý¾ÝÊÇString£¬Ä¬Èϰ´UTF-8±àÂëдÈëÎı¾Îļþ£¬Èç¹û´«ÈëµÄ²ÎÊýÊÇBuffer£¬ÔòдÈëµÄÊǶþ½øÖÆÎļþ¡£»Øµ÷º¯ÊýÓÉÓÚÖ»¹ØÐijɹ¦Óë·ñ£¬Òò´ËÖ»ÐèÒªÒ»¸öerr²ÎÊý¡£

ͬ²½Ð´Îļþ

'use strict';
var fs=require('fs');
var data='write date into file';
fs.writeFileSync ('output.txt',data);

»ñÈ¡Îļþ´óС¡¢´´½¨Ê±¼äµÈÐÅÏ¢

fs.stat()·µ»ØÒ»¸öStat¶ÔÏó£¬ÄܸæËßÎÒÃÇÎļþ»òĿ¼µÄÏêϸÐÅÏ¢¡£

//Òì²½
'use strict';
var fs=require('fs');
fs.stat('sample.txt',function(err,stat){
if(err){
console.log(err);
}else{
console.log('isFile:'+stat.isFile());
console.log('isDirectory:'+stat.isDirectory());
if(stat.isFile()){
console.log('size:'+stat.size);
console.log('birth time:'+stat.birthtime);
console.log('modified time:'+stat.mtime);
}
}
});
//ͬ²½
'use strict';
var fs=require('fs');
try{
var stat=fs.statSync ('sample.txt');
console.log ('isFile:'+stat.isFile());
console.log ('isDirectory:'+stat.isDirectory());
if(stat.isFile( )){
console. log ('size:'+stat.size);
console.log ('birth time:'+stat.birthtime);
console.log ('modified time:'+stat.mtime);
}
}catch(err){
console.log (err);
}

Á÷¶ÁдÎļþ

ËùÓÐÄܶÁÈ¡Êý¾ÝµÄÁ÷¶¼¼Ì³Ð×Ôstream.Readable;ËùÓÐÄÜдÈëÊý¾ÝµÄÁ÷¶¼¼Ì³Ð×Ôstream.Writable;

//¶Á²Ù×÷
'use strict';
var fs = require('fs');
var rs = fs.createReadStream ('sample.txt', 'utf-8' )
rs.on('data', function (chunk) {//dataʼþ±íʾÁ÷µÄÊý¾ÝÒѾ­¿ÉÒÔ¶ÁÈ¡¡£
console.log('DATA:');
console.log(chunk);
});
rs.on('end', function () {//endʼþ±íʾÕâ¸öÁ÷ÒѾ­µ½ÁËĩβ£¬Ã»ÓÐÊý¾Ý¿É¶Á¡£
console.log('END');
});
rs.on('error', function (err) { //error±íʾʼþ³ö´í¡£
console.log ('ERROR: ' + err);
});
//д²Ù×÷
var ws=fs.createWriteStream ('sample.txt','utf-8');
ws.write ('write data into file with stream');
ws.end;

pipe

Ò»¸öReadableÁ÷ºÍÒ»¸öWritableÁ÷´®ÆðÀ´ºó£¬ËùÓÐÊý¾Ý×Ô¶¯´ÓReadableÁ÷½øÈëWriteableÁ÷£¬ÕâÖÖ²Ù×÷½Ðpipe¡£

ĬÈÏÇé¿öÏ£¬µ±ReadableÁ÷µÄÊý¾Ý¶ÁÈ¡Íê±Ï£¬endʼþ´¥·¢ºó£¬½«×Ô¶¯¹Ø±ÕWritableÁ÷¡£Èç¹ûÎÒÃDz»Ï£Íû×Ô¶¯¹Ø±ÕWritableÁ÷£¬ÐèÒª´«Èë²ÎÊý

readable.pipe(writable,{end:false});

Node.jsʵÏÖHTTP·þÎñÆ÷³ÌÐò

´¦ÀíTCPÁ¬½Ó£¬½âÎöHTTP¶¼ÓÉhttpÄ£¿éÍê³ÉÁË£¬HTTPÇëÇóºÍHTTPÏìÓ¦¶¼·Ö±ð·â×°ÔÚhttpÄ£¿éÖеÄrequest¶ÔÏóºÍresponse¶ÔÏóÖС£

//¼òµ¥µÄHTTP·þÎñ³ÌÐò
'use strict';
var http=require('http');
var server=http.createServer (function (request ,response ){
console.log (request.method +":"+request.url);
response.writeHead(200,{'Content-Type ':' text/ html ' });
response.end ('<h1>hello world</h1>');
} );
server.listen (8080);
console.log ('Server is running at http: // 127.0. 0 . 1 : 8080/') ;

Node.jsʵÏÖÎļþ·þÎñÆ÷

½âÎöURLÐèÒªÓõ½Node.jsÌṩµÄurlÄ£¿é£¬Í¨¹ýparse()½«Ò»¸ö×Ö·û´®½âÎöΪһ¸öUrl¶ÔÏó;

´¦Àí±¾µØÎļþĿ¼ÐèҪʹÓÃNode.jsÌṩµÄpathÄ£¿é£¬Ê¹ÓÃpathÄ£¿é¿ÉÒÔÕýÈ·´¦Àí²Ù×÷ϵͳÏà¹ØµÄÎļþ·¾¶;

//¼òµ¥µÄÎļþ·þÎñÆ÷
'use strict';
var
fs=require ('fs'),
url=require ('url'),
path=require ('path'),
http=require ('http');
// ´ÓÃüÁîÐвÎÊý»ñÈ¡rootĿ¼£¬Ä¬ÈÏÊǵ±Ç°Ä¿Â¼
var root = path.resolve (process.argv[2] || '.');
console.log (process.argv[2]);
console.log ('Static root dir: ' + root);
var server=http. createServer (function(request , response ){
var pathname = url.parse (request.url).pathname;
var filepath = path.join (root, pathname);
fs.stat(filepath, function (err, stats) {
if (!err && stats.isFile()) {
console .log ('200 ' + request.url);
response.writeHead (200,{'Content-Type':' text/html ; charset = utf-8'});
//response.write ('<meta charset="utf-8"/> ');
fs . createReadStream (filepath).pipe(response);//ÓÉÓÚ response¶ÔÏó±¾ÉíÊÇÒ»¸öWritable Stream£¬Ö±½ÓÓÃpipe () ·½·¨¾ÍʵÏÖÁË×Ô¶¯¶ÁÈ¡ÎļþÄÚÈݲ¢Êä³öµ½HTTPÏìÓ¦
} else {
console. log ('404 ' + request.url);
response.writeHead (404);
response.end ('404 Not Found');
}
});
});
server.listen (8080);
console.log ('Server is running at http://127.0.0.1:8080/');

node.jsµÄ¼ÓÃÜÄ£¿écrypto

cryptoÄ£¿éµÄÄ¿µÄÊÇΪÁËÌṩͨÓõļÓÃܺ͹þÏ£Ëã·¨,NodejsÓÃC/C++ʵÏÖÕâЩËã·¨ºó£¬Í¨¹ýcyptoÕâ¸öÄ£¿é±©Â¶ÎªJavaScript½Ó¿Ú¡£

MD5ºÍSHA1

const crypto=require ('crypto');
const hash=crypto.createHash ('md5');
// 098f6bcd4621d373cade4e832627b4f6
// const hash=crypto.createHash('sha1'); //a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
hash.update('test');
//update () ·½·¨Ä¬ÈÏ×Ö·û´®±àÂëΪUTF-8£¬Ò²¿ÉÒÔ´«ÈëBuffer
console.log(hash.digest ('hex'));
//ÒÔÊ®Áù½øÖƵķ½Ê½Êä³ö

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

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

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

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