核心提示:node的学习笔记一、了解node1)Node不是一个Web服务器,它本身并不能做任何事情。Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime.二、no...
node的学习笔记
一、了解node
1)Node不是一个Web服务器,它本身并不能做任何事情。Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime.
二、node命令行
1)不带任何参数直接在Shell中输入node,然后输入命令,每个命令都会返回一个值
2)执行一个js文件 node hello.js
三、文件的输入和输出操作 ==> 通过内置的文件(fs)模块
fs模块有一个readFile方法,该方法以文件路径、回调函数为参数。该回调函数在完成文件读取后调用
在一个js文件中输入如下代码即可:
example_log.txt:
2013-08-09T13:50:33.166Z A 2 2013-08-09T13:51:33.166Z B 1 2013-08-09T13:52:33.166Z C 6 2013-08-09T13:53:33.166Z B 8 2013-08-09T13:54:33.166Z B 5
/*引入fs模块*/ var fs = require('fs'); /*读入该文件*/ fs.readFile('example_log.txt', function (err, logData) { f (err) throw err; /*文件数据读取后存储在Buffer类型中,为基本的字节数组*/ var text = logData.toString(); var results = {}; var lines = text.split('\n'); lines.forEach(function(line) { var parts = line.split(' '); var letter = parts[1]; var count = parseInt(parts[2]); if(!results[letter]) { results[letter] = 0; } results[letter] += parseInt(count); });
输出为:{A:2,B:14,C:6}
四:异步回调 == > Node.js典型的模式是使用异步回调
Node是单线程的,在等待回调函数执行过程中,Node可继续执行其他事务,不必被阻塞直到该请求完毕。
HTTP服务器 == > http模块
my_web_server.js
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8080); console.log('Server running on port 8080.');
五、Express框架
安装:npm install express
安装的模块会出现在node_modules文件夹中
一个静态服务器的搭建 == >
my_static_file_server.js
var express = require('express'), app = express(); app.use(express.static(__dirname + '/public')); app.listen(8080);
六、使用npm安装依赖 在安装依赖的过程中 可以使用package.json文件来进行一次性的全部安装 npm install
"name" : "MyStaticServer", "version" : "0.0.1", /*安装生产环境中的依赖 == > 安装模块的名称和版本*/ "dependencies" : { "express" : "3.3.x" }
parser.js == > log 分析脚本
var Parser = function() { }; Parser.prototype.parse = function(text) { var results = {}; var lines = text.split('\n'); lines.forEach(function(line) { var parts = line.split(' '); var letter = parts[1]; var count = parseInt(parts[2]); if(!results[letter]) { results[letter] = 0; } results[letter] += parseInt(count); }); return results; } module.exports = Parser;/*从该文件中要输出的内容*/
my_parser.js
/*引入文件路径 而非名称*/ var Parser = require('./parser'); var fs = require('fs'); fs.readFile('example_log.txt', function (err, logData) { if (err) throw err; var text = logData.toString(); var parser = new Parser(); console.log(parser.parse(text)); }
npm install - save module_name /*npm将自动更新你的package.json 包含正确的模块和版本*/