2018-11-29
Express框架
1.Express框架的核心
特性。
①可以設(shè)置中間件來響應(yīng) HTTP 請求蛋铆。
②定義了路由表用于執(zhí)行不同的 HTTP 請求動(dòng)作话瞧。
③可以通過向模板傳遞參數(shù)來動(dòng)態(tài)渲染 HTML 頁面惜辑。
2.下載及安裝化撕。
在git或者window+R(輸入cmd)中:
①
cnpm install express
②
npm install express
其實(shí)原理都一樣。
QAQ:npm是node自帶的业踏。
QAQ:cnpm是通過先安裝淘寶鏡像:npm install -g cnpm --registry=https://registry.npm.taobao.org禽炬。
3.首先我們先從創(chuàng)建express框架做起。
eg:express框架如下
//1.引入express
const express=require('express');
//2.創(chuàng)建一個(gè)服務(wù)
var server=express();
//3.監(jiān)聽端口
server.listen(2580);
4.以下實(shí)例中我們引入了 express 模塊勤家,并在客戶端發(fā)起請求后腹尖,響應(yīng)不同的內(nèi)容。
//1.引入express
const express=require('express');
var server=express();//創(chuàng)建一個(gè)服務(wù)
// server.use('訪問的路徑'伐脖,函數(shù)) 用來處理用戶請求與的
server.use('/a.html',function(req,res){
// res.write({a:5,b:3});//響應(yīng)的內(nèi)容
res.send({a:5,b:3});//響應(yīng)的內(nèi)容
res.end();//響應(yīng)結(jié)束
});
server.use('/b.html',function(req,res){
res.write('123');//響應(yīng)的內(nèi)容
res.end();//響應(yīng)結(jié)束
});
// server.use('/',function(req,res){//根目錄
// res.send('aabbcc');//響應(yīng)的內(nèi)容
// res.end();//響應(yīng)結(jié)束
// });
// 監(jiān)聽端口
server.listen(8080);
// http.createServer(function(req,res){
// res.write('aaa');
// })
QAQ:規(guī)定根目錄('/')不能和子目錄一起訪問热幔。
QAQ:不推薦使用res.write寫法:因?yàn)槠錇樵鷍s,對好多性能未優(yōu)化讼庇,都需要手寫绎巨。
QAQ:推薦使用res.send寫法:主要是性能更優(yōu)越。
QAQ:對中間兩個(gè)QAQ解釋如下蠕啄。
var http=require('http');
var server=http.createServer(function(request,response){
console.log('one by one');
// 解決亂碼
response.setHeader('Content-Type','text/html;charset=UTF-8');
switch(request.url){
case '/1.html':
response.write('這是1.html');
break;
case '/2.html':
response.write('這是2.html');
break;
default:
response.write('404');
}
response.end();
})
server.listen(2580);
var http=require('http');
var server=http.createServer(function(request,response){
console.log('one by one');
switch(request.url){
case '/1.html':
response.send('這是1.html');
break;
case '/2.html':
response.send('這是2.html');
break;
default:
response.send('404');
}
response.end();
})
server.listen(2580);
顯然场勤,兩個(gè)板塊輸出的效果是一樣的,但是上一個(gè)用的原生js介汹,其次卻是框架里的結(jié)構(gòu)却嗡,所以,綜上所述直接使用send,漢字也就不亂碼了如庭。
3.用戶請求叹卷。
三種方式處理用戶的請求
①server.get????只能是get方式。
②server.post????只能是post方式坪它。
③server.use????post/get方式都可以骤竹。
舉例如下:
①②③的xxx.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="http://localhost:2580" method="get">//1.get
//2.post 3.use
<p>
用戶名: <input type="" name="uname">
</p>
<p>
<input type="submit" name="" placeholder="提交">
</p>
</form>
</body>
</html>
eg①的js文件:
const express=require('express');
var server=express();
server.get('/',function(req,res){
console.log('get請求')
});
server.listen(2580);
eg②的js文件:
const express=require('express');
var server=express();
server.post('/',function(req,res){
console.log('post請求')
});
server.listen(2580);
eg③的js文件:
const express=require('express');
var server=express();
server.use('/',function(req,res){
console.log('use請求')
});
server.listen(2580);
綜上所述:express框架還是大大提高了我們的效率。
最后: