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:
<b>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</b>
<b>
/*引入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);
});
</b>
输出为:{A:2,B:14,C:6}
四:异步回调 == > Node.js典型的模式是使用异步回调
Node是单线程的,在等待回调函数执行过程中,Node可继续执行其他事务,不必被阻塞直到该请求完毕。
HTTP服务器 == > http模块
my_web_server.js
<b>
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.');
</b>
五、Express框架
安装:npm install express
安装的模块会出现在node_modules文件夹中
一个静态服务器的搭建 == >
my_static_file_server.js
<b>
var express = require('express'),
app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8080);
</b>
六、使用npm安装依赖 在安装依赖的过程中 可以使用package.json文件来进行一次性的全部安装 npm install
<b>
"name" : "MyStaticServer",
"version" : "0.0.1",
/*安装生产环境中的依赖 == > 安装模块的名称和版本*/
"dependencies" : {
"express" : "3.3.x"
}
</b>
parser.js == > log 分析脚本
<b>
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;/*从该文件中要输出的内容*/
</b>
my_parser.js
<b>
/*引入文件路径 而非名称*/
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));
}
</b>
npm install - save module_name /*npm将自动更新你的package.json 包含正确的模块和版本*/