课时56 http开篇
http 模块:
启动一个http服务:
代码:
//引入模块
let http = require("http");
//创建一个服务器
let server= http.createServer((request, response) => {
response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.end("Hello World");
});
//端口 监听
server.listen(8085, "127.0.0.1");
课时57 http路由上
Conten-type 对照表:http://tool.oschina.net/commons
/*
Node没有web容器
通过路由来判断返回的内容
Node.js中的url和物理文件并不是一一对应
*/
//引入模块
let http = require("http");
//创建一个服务器
let server= http.createServer((request, response) => {
console.log(request.url)
//输出请求的url 顶层路由设计
response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.write("<h1>123321</h1>");
response.end("Hello World");
});
//端口 监听
server.listen(8085, "127.0.0.1");
课时58 http路由中
通过路由设置返回内容
使用fs模块读取html 文件
判断每次访问的url决定返回的内容
缺点是麻烦
优点是可以隐藏真实的资源地址
//引入模块
let http = require("http");
let fs= require('fs');
//创建一个服务器
let server= http.createServer((request, response) => {
var url= request.url;
if(url === '/index.html'){
fs.readFile('./index.html', (err,data)=>{
if(!err){
response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.end(data)
}else{
throw err;
}
})
}else if(url === '/about.html'){
fs.readFile('./about.html', (err,data)=>{
if(!err){
response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.end(data)
}else{
throw err;
}
})
}else{
response.end("<h2>404</h2>")
}
});
//端口 监听
server.listen(8085, "127.0.0.1");
课时59 http路由下
读取css/js资源、图片资源、视频资源、音频资源
读取资源时记得根据资源的不同 需更改 Content-Type 的格式
//引入模块
let http = require("http");
let fs= require('fs');
//创建一个服务器
let server= http.createServer((request, response) => {
var url= request.url;
if(url === '/index.html'){
fs.readFile('./index.html', (err,data)=>{
if(!err){
response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.end(data)
}else{
throw err;
}
})//加载css资源
}else if(url === '/css/index.css'){
fs.readFile('./css/index.css', (err,data)=>{
if(!err){
response.writeHead(200, {"Content-Type": "text/css;charset=UTF-8"});
response.end(data)
}else{
throw err;
}
});//加赞图片资源
}else if(url === '/source/1.jpg'){
fs.readFile('./source/1.jpg', (err,data)=>{
if(!err){
response.writeHead(200, {"Content-Type": "application/x-jpg"})
response.end(data)
}else{
throw err;
}
})
}else{
console.log('错误')
}
});
//端口 监听
server.listen(8085, "127.0.0.1");
课时60 HTTP-URL

url 网址 模块
使用 url 对象 可以获取网址的每一段的具体内容
http://nodejs.cn/api/url.html
request.url 获取网址
url.parse(request.url) 解析url网址成对象形式
最常用的是使用 parse 他可以在http中使用 不必解析一个完整的url地址
需要解析一个完整的URL地址可以使用:
const { URL } = require('url');
const myURL =
new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
let http= require('http');
let url= require('url');
let server= http.createServer((request, response)=>{
let myURl= url.parse(request.url);
console.log(myURl);//打印解析url 地址
response.end("hello world")
});
server.listen(8085, '127.0.0.1')
网友评论