一. 防盗链
防盗链即防止外部(服务器所在域名之外的网络)盗取本网的资源。
判断是否是本网的依据:
请求头的
refer属性中存的就是发起请求的网页所在的域名。
简单实现如下: 【可以在全局中间件里实现】
二. 路由模块化
每个路由模块中:
(1) 创建路由对象:
const router = express.Router()
(2) 路由注册:
router.get('/admin',(req,res)=>{})
(3) 导出路由对象
module.exports = router
主文件中引入使用:
(1) 引入路由:
const homeRouter = require('./routes/honeRouter')
(2) 设置使用:
app.use('设置路由前缀(可选)',homeRouter)
栗子:
三. 处理文件上传
文件上传其实是由客户端向服务器发送http请求(post形式的),然后服务器收到请求后,进行一系列处理【把文件资源存储到静态资源文件夹下;把存放路径存储到数据库中】。
框框里是如果要在 form 表单中上传文件,必须要写的属性:
对上传文件进行处理:
需要借助 formidable 库!!!