Node.js 实现第一个应用以及HTTP模块和URL模块应用
/*
实现一个应用,同时还实现了整个 HTTP 服务器。
* */
//1.引入http模块
var http=require('http');
//2.用http模块创建服务
/*
req获取url信息 (request)
res 浏览器返回响应信息 (response)
* */
http.createServer(function(req,res){
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
//设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf-8
res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
res.write("你好 nodejs");
res.write('我是第一个nodejs程序');
res.end(); /*结束响应*/
}).listen(8001);
到该文件夹下,cmd命令运行:
node hello.js
浏览器显示:
HTTP 模块、URL 模块
Node.js 中,将很多的功能,划分为了一个个 module(模块)。 Node.js 中的很多功能都是通过模块实现。
HTTP 模块的使用
如第一个代码块,
req.url URL 地址。所有的路由设计,都是通过 req.url 来实现的。
我们比较关心的不是拿到 URL,而是识别这个 URL。
url.parse() 解析 URL
url.format(urlObject) //是上面 url.parse() 操作的逆向操作
url.resolve(from, to) 添加或者替换地址
案例:
var http=require('http');
var url=require('url');
//2.用http模块创建服务
/*
req获取url信息 (request)
res 浏览器返回响应信息 (response)
* */
http.createServer(function(req,res){
//输入http://localhost:8001/news?aid=123 拿到aid
// 输入http://localhost:8001/news?aid=123&cid=3 拿到aid 和cid
//req.url 获取浏览器url输入的信息
res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
if(req.url!='/favicon.ico'){
//http://localhost:8001/news?aid=123
//console.log(req.url); //返回 /news?aid=123
var result=url.parse(req.url,true); //第一个参数是地址 第二个参数是true的话表示把get传值转换成对象
console.log('aid='+result.query.aid); /*获取url的get传值*/
console.log('cid='+result.query.cid);
}
res.write('你好 nodejs');
res.end(); /*结束响应*/
}).listen(8001);
浏览器运行:
控制台打印:
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!