nodejs入门
Node.js 就是运行在服务端的 JavaScript,可以使用熟悉的JavaScript语言创建服务。
nodejs运行于Google的V8引擎,所以我们首先需要安装运行环境,安装非常简单:http://www.runoob.com/nodejs/nodejs-install-setup.html(最新的node安装包含npm)
组成部分:
-
引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。eg required('http')// http 模块nodejs模块自带
-
创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
-
接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
全局对象:__filename,__dirname,setTimeout(cb, ms),clearTimeout(t),setInterval(cb, ms),console,Process
模块系统:
1、创建模块test.js
exports.world = function() {
console.log('Hello World');
}
2、引用模块
var hello = require('./test'); hello.world();
GET/POST请求:
http.get(url, function(res) {} http.post(url, function(res) {}
//可以对请求监听data和end事件,获得实时数据
req.on('data', function(chunk){ //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
post += chunk;
}); req.on('end', function(){ //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
express:简洁而灵活的 node.js Web应用框架
首先需要安装express框架包,这里使用npm命令安装:npm install express -g(带上-g表示全局安装,这样其他项目都可以引用到该工具包)。如果要查看安装了哪些全局包,使用命令:npm ls -g
综合案例:网络爬虫
1、下载解析网页必备的包:
2、downloadUrlModule.js:模块,根据url获取网页内容
var http = require('http');
function download(url, callback) {
http.get(url, function(res) {
var data = "";
res.on('data', function (chunk) {
data += chunk;
});
res.on("end", function() {
callback(data);
});
}).on("error", function() {
callback(null);
});
}
exports.download = download;//根据网址下载网页信息
3、downloadPage.js:根据规则获取页码想要的内容
var cheerio = require("cheerio");
var server = require("./downloadUrlModule");
var url = "http://www.2cto.com/kf/201404/294399.html";
server.download(url, function(data) {
if (data) {
//console.log(data);
var $ = cheerio.load(data);
$(".left_menu_link a").each(function(i, e) {
console.log($(e).attr("href"));
});
console.log("done");
//console.log(data);
} else {
console.log("error");
}
});
4、node运行:node downloadPage.js

浙公网安备 33010602011771号