nodejs学习04——express框架

发布时间 2023-11-21 14:58:50作者: htj10

搭建环境

新建一个文件夹 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...');
});