打卡node day07--图片上传,身份验证
2024-10-22 05:01:50
multer 模块 github:https://github.com/fanlina157/nodePro
npm i multer
fileRouter.js
var express = require('express')
var router = express.Router() // 图片上传
const multer = require('multer') var storage = multer.diskStorage({
// 设置上传后文件路径,uploads 文件夹自动创建(可以先手动)
destination: function(req, file, cb) {
cb(null, './static/img');
},
filename: function(req, file, cb) {
cb(null, `${Date.now()}-${file.originalname}`)
}
}) // 添加配置文件到muler对象。
var upload = multer({ storage: storage }); // 文件上传请求处理,upload.array 支持多文件上传,第二个参数是上传文件数目
// upload.single('hehe') 上传一张图片 hehe 就是上传的key 值 前后端统一 router.post('/upload', upload.single('img'), function (req, res) {
// 读取上传的图片信息
let {mimetype,filename} = req.file
// 限制文件类型
let imgType = ['png','jpg','jpeg','gif']
let temType = mimetype.split('/')[1]
if(imgType.indexOf(temType) === -1) {
return res.send('格式不正确')
}
// 把路径返回
let url = '/public/img/'+filename
res.send({url:url})
// file: {
// fieldname: 'img',
// originalname: '222.png',
// encoding: '7bit',
// mimetype: 'image/png',
// destination: './uploads',
// filename: '1584687806143-222.png',
// path: 'uploads\\1584687806143-222.png',
// size: 6268
// }, // 设置返回结果
// var result = {};
// if(!files[0]) {
// result.code = 1;
// result.errMsg = '上传失败';
// } else {
// result.code = 0;
// result.data = {
// url: files[0].path
// }
// result.errMsg = '上传成功';
// }
// res.end(JSON.stringify(result));
}); module.exports = router
身份验证问题
传统的session+cookie身份验证
server.js
const session = require('express-session');
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.use(session({
resave: true, // 即使session 没有被修改 也保存session 值 默认为true
saveUninitialized: false, // 无论有没有session cookie 每次请求都设置session cookie
secret: 'love',
cookeie:{maxAge:60*100*60*24} //设置过期时间
})); const foodRouter = require('./router/foodRouter')
app.use('/food',(req,res,next)=>{
// user 接口存值了, food 接口判断
if(req.session.login) {
next()
}else {
return res.send({code:444, message:'请先登录'})
}
}, foodRouter)
用户退出登录
jwt
对称加密
使用 路由页面
const JWT = require('./token.js')
验证
最新文章
- .NET开源资源汇总
- 文法分类的python实现
- .NET中的CTS、CLS和CLR
- timingFunction
- js:语言精髓笔记5----语言分类
- Jni的一个异常
- framework7学习笔记
- Jmeter Constant Throughput Timer 使用
- 蜗牛爱课 -- iOS 设计模式之模板模式
- Cookie、Session
- mysql编码的那点事
- 第一百三十一节,JavaScript,封装库--CSS
- web.config中httpModules和Modules的区别
- Codeforces 837E Vasya's Function - 数论
- hdu2204 Eddy's爱好 打表+容斥原理
- [JAVA]多线程下如何确定执行顺序性
- 用代码来细说Csrf漏洞危害以及防御
- DFS剪枝处理HDU1010
- github上fork别人的代码之后,如何保持和原作者同步的更新
- Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群