搭建環境
新建一個文件夾 LearnExpress,
命令行:
//初始化包
npm init
// 安裝 express
npm i express
初體驗
//1. 導入 express
const express = require('express');
//2. 創建應用對象
const app = express();
//3. 創建路由規則
app.get('/home', (req, res) => {
//res.end('hello express server');//也可以用 send
res.send('hello ...');
});
//4. 監聽端口 啓動服務
app.listen(8080, () =>{
console.log('服務已經啓動, 端口監聽爲 8080...');
});
路由的使用
//路由的使用
//一個路由的組成有 請求方法 , 路徑 和 回調函數 組成
//1. 導入 express
const express = require('express');
//2. 創建應用對象
const app = express();
// 創建 get 路由
app.get('/home', (req, res) => {
res.send('網站首頁');
});
app.get('/',(req,res)=>{
res.send('我纔是真正的首頁');
});
//創建 post 路由
app.post('/login', (req, res) => {
res.send('登錄成功');
});
//匹配所有的請求方法
app.all('/search', (req, res) => {
res.send('1 秒鐘爲您找到相關結果約 100,000,000 個');
});
//自定義 404 路由
app.all("*", (req, res) => {
res.send('<h1>404 Not Found</h1>')
});
//4. 監聽端口 啓動服務
app.listen(8080, () =>{
console.log('服務已經啓動, 端口監聽爲 8080...');
});
請求參數獲取
//1. 導入 express
const express = require('express');
//2. 創建應用對象
const app = express();
//獲取請求的路由規則
app.get('/request', (req, res) => {
//1. 獲取報文的方式與原生 HTTP 獲取方式是兼容的
console.log(req.method);//GET
console.log(req.url);// /request?abc=100&pw=wod
console.log(req.httpVersion);//1.1
console.log(req.headers);
//2. express 獨有的獲取報文的方式
//獲取查詢字符串
console.log(req.query); // 『相對重要』 { abc: '100', pw: 'wod' }
// 獲取指定的請求頭
console.log(req.get('host'));// 127.0.0.1:8080
console.log(req.get('user-agent'));
//res.write('test');
//res.end('請求報文的獲取');
res.send('請求報文的獲取');
});
//獲取路由參數,路由參數指的是 URL 路徑中的參數(數據)
app.get('/:id.html', (req, res) => {
res.send('商品詳情, 商品 id 爲' + req.params.id);
});
//4. 監聽端口 啓動服務
app.listen(8080, () =>{
console.log('服務已經啓動, 端口監聽爲 8080...');
});
響應設置
//1. 導入 express
const express = require('express');
//2. 創建應用對象
const app = express();
//獲取請求的路由規則
app.get("/response", (req, res) => {
//1. express 中設置響應的方式兼容 HTTP 模塊的方式
// res.statusCode = 404;
// res.statusMessage = 'xxx';
// res.setHeader('abc','xyz');
// res.write('響應體');
// res.end('xxx');
//2. express 的響應方法
res.status(500); //設置響應狀態碼
res.set('xxx','yyy');//設置響應頭
res.send('中文響應不亂碼');//設置響應體
//連貫操作
// res.status(404).set('xxx','yyy').send('你好朋友');
//3. 其他響應
// res.redirect('http://atguigu.com');//重定向
// res.download('./package.json');//下載響應
// res.json();//響應 JSON
// res.sendFile(__dirname + '/home.html'); //響應文件內容
});
//4. 監聽端口 啓動服務
app.listen(8080, () =>{
console.log('服務已經啓動, 端口監聽爲 8080...');
});