模块化
Node 利用 JavaScript 的函数式编程特性,实现模块的隔离。
(function() { ... })();使用 module.exports = <functionName> 将函数暴露出去, 调用处用 require('<module_name>') 拿到暴露的函数。
基本模块
fs
文件系统模块 fs: 分为异步方法和*同步方法。
- 异步读文件:
fs.readFile('<FileName>', 'utf-8', function(err, data){ ... }); - 同步读文件:
var data = fs.readFileSync('<FileName>', 'utf-8');
错误通过try {...} catch() {...}捕获。 - 异步写文件:
fs.writeFile('<FileName>', data, function(err) { ... });
传入的 data 是 String, 默认按 UTF-8 写入,传入的 data 是 Buffer, 则写入二进制文件。 - 同步写文件:
fs.writeFileSync('<FileName>', data); - 异步获取文件属性:
fs.stat('<FileName>', function(err, stat) { ... }); - 同步获取文件属性:
var stat = fs.statSync('<FileName>');
stream
数据流读取/写入 fs.createReadStream, fs.createWriteStream
管道连接 readable.pipe(writeable, {end:true/false});
http
http模块 - 提供request和response对象http.createServer(function(request, response) {...});创建 Web Serverurl模块 - web 路径path模块 - 本地文件目录
crypto
crypto 提供 加密和哈希算法。
crypto.createHash('md5');- 哈希算法 MD5及SHA1crypto.createHmac('sha256', 'secret-key');- 哈希算法 Hmac 需要额外的一个密钥crypto.createCipher('aes192', 'secret-key');- AES 对称加密算法, 加解密用同一个密钥crypto.createDiffieHellman(prime, generator);- DH 算法,密钥交换协议,双方在不泄露密钥的情况下生成一个密钥crypto.create- 非对称算法,RSA 一个公钥和一个私钥构成密钥对
RSA 不适合加密大数据,对于大数据加密,先生成一个 AES 密钥加密大数据,然后用 RSA 加密 AES 密钥,实际使用时,传输 AES 和 RSA 2 份密钥。
Web 开发
koa
未完,待续 …
示例代码
相关代码请参考:Node.js 示例代码。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!
