打卡node day07--图片上传,身份验证
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')
验证
打卡node day07--图片上传,身份验证的更多相关文章
- 一个node.js图片上传显示小应用
文件结构如下: 实现的功能有: 可以通过浏览器使用. 当请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可以选择一个图片并提交表单,随后文件将被上 ...
- node.js图片上传
1.node-formidable 对文件上传提供帮助的组件 2.app.js var formidable = require('formidable'); var http = require( ...
- ajax+node实现图片上传
利用formData实现ajax上传图片后,保存图片到指定收藏夹,然后展示新重命名后的图片 html: <input type="file" id="uploadI ...
- Nodejs之MEAN栈开发(四)---- form验证及图片上传
这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能.开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R ...
- form验证及图片上传
form验证及图片上传 这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能.开始之前需要源码同学可以先在git上fork:https://github.com/ ...
- nodejs图片上传
node中图片上传的中间键很多,比如formidable等,这里我们使用nodejs中的fs来实现文件上传处理: 1.安装中间键connect-multiparty npm install conne ...
- 用Vue来实现图片上传多种方式
没有业务场景的功能都是耍流氓,那么我们先来模拟一个需要实现的业务场景.假设我们要做一个后台系统添加商品的页面,有一些商品名称.信息等字段,还有需要上传商品轮播图的需求. 我们就以Vue.Element ...
- 使用express+multer实现node中的图片上传
使用express+multer实现node中的图片上传 在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中 在n ...
- Node.js之图片上传
本文用node进行图片上传主要借助formidable插件,具体使用步骤如下: 1.安装formidable插件 npm install formidable -g 2.引入依赖包 const for ...
- Node.js实现图片上传功能
node接口实现 const express = require('express') const mysql = require('mysql') const cors = require('cor ...
随机推荐
- Windows 设置当前路径 临时环境变量 查看、修改、删除与添加
需求 有些程序依赖的Python版本不同,安装了Python2.7和Python3.10(3.x没有向下兼容),需要设置当前路径的 python 版本(指定使用2或3). 也不止Python,类似的情 ...
- SAR成像(一):线性调频信号(LFM)和脉冲压缩
文章仅为个人理解,如有不妥之处欢迎指正. 1.脉冲压缩目的和意义 在雷达系统中,距离分辨率是很重要的一项性能指标,它决定了雷达能分辨两个单元之间的最小距离,更通俗的,即雷达分辨相离较近物体的能力.而决 ...
- byte最高位
/** * 将byte转换为一个长度为8的byte数组,数组每个值代表bit */public static byte[] replaceSpace(Byte b){ byte[] array=new ...
- Selenium私房菜系列4 -- Selenium IDE的使用【QQ】
前面说过,Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换,所以Selenium IDE+Firebug会成为你日后写测试案例的两大助手(IE下可以使用Seleniu ...
- React-Navigation 5.x 的 demo案例
一. stack路由结构的一些效果 (1)横向过渡动画 (2)整个选项卡样式修饰 最终实现效果:动态图 以上两个功能实现都很简单,我测试时,关注了一个问题,navigation 丢失.stackNav ...
- Spring Boot 开启后缀匹配模式
项目原有 Java 配置为继承 WebMvcConfigurationSupport, 而WebMvcConfigurationSupport#requestMappingHandlerMapping ...
- Micro-OA系统
Micro-OA简单描述 MicroOA是一款不需要专业的开发知识或开发经验,通过页面交互式即可实现动态搭建表单的微型办公自动化系统.在日常工作当中,我们面临着各种各样的表单,在开发系统时,若我们采用 ...
- HashMap问题
package com.google; import javax.lang.model.element.NestingKind; import java.util.HashMap; public cl ...
- 浅谈组件二封-vue
目录 组件二封不是换一种写法 组件二封应当具备哪些条件 我认为的二封应当有哪些作用 二封的好处 先来一个列表页demo来看看效果(Vue2) 本文仅仅针对vue系列做探讨, 项目倾向于大量增删改查的后 ...
- 写入到Excel表格文件当中,导出/导入数据
/// <summary> /// 写入到Excel表格文件当中,导出数据 /// </summary> /// <param name="dt"&g ...