程序构成-四大模块
1.入口模块(index.js):创建http服务器,加载router文件模块,分发请求资源。
2.路由处理模块(router.js):处理所有请求资源,分发到不同处理模块。
3.DNS解析模块(parse_dns.js): 根据获取的域名进行解析,返回相应的处理结果到页面。
4.首页展示模块(main_index.js):使用fs模块读取index.html页面字符数据,然后返回到客户端。
全局变量
1 | _filename:输出当前文件的绝对路径,包含文件名 |
事件模块(events)
1 | var events = require('events'); //引用events模块 |
eventEmitter方法
1 | addListener(event, listener) 添加一个监听器到监听数组末尾,与on功能相同; |
url处理
require(‘url’)
require(‘querystring’)1
2
3(例url:http://localhost:3000//test?name=cangjie&book=nodeJs)
req.url: test?name=cangjie&book=nodeJs
获取pathname: url.parse(req.url).pathname //test
get
1 | 获取参数: var paramStr = url.parse(req.url).query //name=cangjie&book=nodeJs |
post
1 | req.addListener("data",function(postDataChunk){ |
http
http属性
1 | res.writeHead: 添加响应头部 |
http方法
1 | createServer: 创建一个http服务器 |
文件模块
1 | fs.rename(path1, path2, [callback]) ——重命名 |
module.exports和exports的区别
module.exports包含exports,exports只能返回一个json对象,而module.exports可以返回多种数据格式。
文件流模块(stream)
读取文件
1 | var readerStream = fs.createReadStream('./index.js'); |
写入流:(文件会被新内容覆盖)
1 | var writeStream = fs.createWriteStream('./http.js'); |
管道流:
1 | readerStream.pipe(writeStream); //将读取的文件写入另一个文件中 |
继承
1 | util.inherits(a,b) //a继承b |