JavaScript学习笔记[4]
Node.js基本模块
- global
- process,代表当前Node.js进程
```
> process === global.process;
true
> process.version;
'v5.2.0'
> process.platform;
'darwin'
> process.arch;
'x64'
> process.cwd(); //返回当前工作目录
'/Users/michael'
> process.chdir('/private/tmp'); // 切换当前工作目录
undefined
> process.cwd();
'/private/tmp'
```
Node.js基本内置模块
- fs,异步读取文件,同步文件,readFileSync(),writeFileSync(),获取文件信息fs.stat(),服务器必须使用异步操作。
```
//读取utf-8文本文件
'use strict';
var fs = require('fs');
fs.readFile('sample.txt', 'utf-8', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
```
```
//读取二进制图片,返回Buffer
'use strict';
var fs = require('fs');
fs.readFile('sample.png', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
console.log(data.length + ' bytes');
}
})
```
```
'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);
// 创建时间, Date对象:
console.log('birth time: ' + stat.birthtime);
// 修改时间, Date对象:
console.log('modified time: ' + stat.mtime);
}
}
});
isFile: true
isDirectory: false
size: 181
birth time: Fri Dec 11 2015 09:43:41 GMT+0800 (CST)
modified time: Fri Dec 11 2015 12:09:00 GMT+0800 (CST)
```
- Node.js基本模块stream
- Node.js基本模块http
```
//hello.js
'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/');
```
```
//file_server.js
'use strict';
var
fs = require('fs');
url = require('url');
path = require('path');
http = require('http');
var root = path.resolve(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);
fs.createReadStream(filepath).pipe(response);
} else{
console.log('404' + request.url);
response.writeHead(400);
response.end('404 Not Found');
}
})
});
server.listen(8080);
console.log('Server is running at http://127.0.0.1:8080/');
```
- crypto
- MD5和SHA1
- Hmac
- AES
- Diffie-Hellman