一、express

1、基础使用

2、路由
(1)app.get(xxx,(req,res)=>{}):该路径的get请求处理
(2)app.post(xxx,(req,res)=>{}):该路径的post请求处理
(3)app.all(xxx,(req,res)=>{}):如果xxx不为*,则是对应路径的get和post请求处理,反之则相当于是保底的请求处理,可用于404处理。

3、获取请求报文
(1)req.path:获取请求路径
(2)req.query:获取查询字符串
(3)req.ip:获取ip地址
(4)req.get(xxx):获取请求头中的xxx

4、获取路由参数

5、响应设置
(1)res.status(500):响应码
(2)res.set(‘aaa’,’bbb’):响应头
(3)res.send(‘xxx’):响应体
(4)res.redirect(‘http://xxx.com’):重定向
(5)res.download(‘./xxx.json’):下载响应
(6)res.json():响应Json,返回json数据
(7)res.sendFile(__dirname + ‘/index.html’):响应文件内容

6、中间件函数
(1)全局中间件:每一个请求到达服务端的时候都会执行全局的中间件函数
(2)路由中间件:对应路由的请求到达服务端的时候会执行的中间件函数
(3)全局中间件定义

(4)路由中间件定义

7、静态资源中间件

8、获取请求体的数据(body-parser中间件)
const bodyParser = require(‘body-parser’);
const jsonParser = bodyParser.json(); // 解析json格式请求的中间件
const urlencodeParser = bodyParser.urlencoded({extended:false}); // 解析querystring格式请求的中间件
— 使用:
app.post(‘/login’,urlencodeParser,(req,res)=>{
console.log(req.body) // 启用这个中间件的时候会给req赋一个body属性,这里就是请求体内容
res.end(‘xxx’)
})
— 其他:req.query 也可以拿到

9、防盗链
利用中间件监测请求头中的referer值,来控制是否返回资料。

10、路由模块化
后端路由一个文件夹,前端路由放一个文件夹
app.use(‘设置路由前缀’,’路由’)

11、express-generator:express应用程序生成器
(1)可用于快速搭建一个node.js项目
(2)官网地址:Express 应用程序生成器 – Express中文文档 | Express中文网
(3)安装好生成器之后,使用流程:express -e 项目名称 ——>npm i;前者创建项目,后者安装依赖。

12、ejs模板引擎
(1)可以独立开js和html,并且可以实现数据传递给html,再在html进行条件判断,循环等操作。有点类似于PHP开发的cmd
(2)其中views中设置的ejs模板,文件格式需要时ejs;模板中<% xxx %>支持的是js语;render是ejs定义后提供的函数。

13、formidable模块
(1)可以用来解析表单,支持get或post请求,文件上传等
(2)参考文档:formidable模块——一个Node.js模块_formidable.js-CSDN博客

15、session
(1)session是存在服务器的小数据
(2)express-session用于在 Express 框架中管理会话(session)。会话是一种在服务器端存储用户数据的方式,通常用于跟踪用户的登录状态、购物车内容等。

const express = require('express');
const session = require('express-session');

const app = express();

// 配置 session 中间件
app.use(session({
  secret: 'your-secret-key', // 用于签名会话 ID 的密钥
  resave: false, // 强制将会话保存回存储,即使会话没有被修改
  saveUninitialized: true, // 强制保存未初始化的会话
  cookie: { secure: false } // 设置 cookie 选项,secure: true 仅在 HTTPS 下有效
}));

// 示例路由
app.get('/', (req, res) => {
  if (req.session.views) {
    req.session.views++;
    res.send(`欢迎回来,这是你第 ${req.session.views} 次访问。`);
  } else {
    req.session.views = 1;
    res.send('欢迎首次访问!');
  }
});

app.listen(3000, () => {
  console.log('服务器运行在 http://localhost:3000');
});
2 thoughts on “Node.js 笔记(2)”

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注