博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs03中间件 -2 path、fs,multer
阅读量:5006 次
发布时间:2019-06-12

本文共 2963 字,大约阅读时间需要 9 分钟。

path 系统模块

磁盘路径:            编码:                windows:  'c:\\user\\admin\\a.jpg'                mac: ~/desktop/1901            UI:                 windows: c:\user\admin                mac: ~/desktop/1901            path.parse('c:\\wamp\\xx.png'); 磁盘路径(str -> obj)                {                   root: 'c:\\', 盘符                   dir: 'c:\\wamp', 目录                   base: 'xx.png',  文件名                   ext: '.png', 扩展名                   name: 'xx'   文件,不含扩展名                }            path.join('磁盘路径1','磁盘路径2')                __dirname 魔术变量  返回当前文件所在的磁盘路径            path.dirname == __dirname   当前文件位置            path.resolve('磁盘路径1','磁盘路径n') 合并磁盘片段,右到左找根,左到右拼接,没有找到根,以当前文件路径为根

let path=require('path')//处理磁盘路径 转对象let str ='c:\\user\\admin\\a.jpg';let str2 ='~/desktop/1901';// path.parse(str)→ Object// console.log(path.parse(str))// { root: 'c:\\',//     dir: 'c:\\user\\admin',  盘符//     base: 'a.jpg',           文件名//     ext: '.jpg',             拓展名//     name: 'a' }              名字不含拓展名let str3='c\\user\\admin'let str4='a.jpg'// console.log(path.join(str3,str4))// c\\user\\admin\a.jpg//  __dirname   返回当前模块所在的磁盘路径// path.resolve('磁盘路径1','磁盘路径n')一个完整的磁盘路径// console.log(path.join('public','img','a.text'))//有问题,没有根符// console.log(path.join(__dirname,'public','img','a.text'))console.log(path.resolve(str3,str4))

 

multer: 文件上传

multer->文件名会随机->fs模块改名->path系统模块解析磁盘路径

文件上传:前端表单->后端接收到文件本身->保存到服务器上->给数据库记录文件一些信息->库返回给nodejs相关信息->nodejs返回给前端            前端: 
后端:multer 接受 form-data编码数据 配置 let multer = require('multer'); 引入 let objMulter = multer({ dest: './upload' }); 实例化 返回 multer对象 dest: 指定 保存位置(存到服务器) app.use(objMulter.any()); any 允许上传任何文件 req.files 数组 fieldname: 表单name名 originalname: 上传的文件名 encoding: 编码方式 mimetype: 文件类型 buffer: 文件本身 size:尺寸 destination: 保存路径 filename: 保存后的文件名 不含后缀 path: 保存磁盘路径+保存后的文件名 不含后缀 **fs模块**: 操作是异步的 fs.rename('当前文件','该后的文件名',(err)=>{});

let express=require('express')let multer=require('multer') //引入 类let app=express()let fs=require('fs')let path=require('path')app.listen(3000)app.use(express.static("./public"))// 安装配置中间件var upload=multer({dest:'uploads/'})//实例化,工厂方法upload==实例app.use(upload.any()) //控制上传文件的类型,any是任意,text是只是文件// app.use('/reg',(req,res,next)=>{//     console.log('files',req.files)//     res.end()// })app.post('/reg',(req,res,next)=>{    console.log('files',req.files)    // 改名    fs.renameSync('./uploads/'+req.files[0].filename,    './uploads/'+req.files[0].filename+path.parse(req.files[0].originalname).ext)//uploads内会重新生成一个可以查看的完整的图片    // 存库    // 返值    res.send({err:0,url:'http://localhost:3000/uploads/'+req.files[0].filename+path.parse(req.files[0].originalname).ext})    // res.end()})//postman在form-data内写上传文件,会转存文件到uploads文件夹内(文件名随机)然后改名rename

转载于:https://www.cnblogs.com/sansancn/p/11012841.html

你可能感兴趣的文章
oracle增删改
查看>>
hdu 1257 最少拦截系统(简单贪心)
查看>>
Spring Boot 系列教程5-热部署-devtools模块
查看>>
[原] 别人家老婆
查看>>
CentOS7忘记root密码
查看>>
C语言基础课第一次作业
查看>>
php字符串截取
查看>>
理解DP(持续更新)
查看>>
python 发送邮件
查看>>
yii2 phpexcel导出excel
查看>>
使用VC数据断点让你避免很多烦忧(转)
查看>>
后缀自动机
查看>>
ZZNU-OJ-2118 -(台球桌面碰来碰去,求总距离)——模拟到爆炸【超时】的不能AC的代码...
查看>>
Sunday串匹配算法 C语言实现
查看>>
学习方法
查看>>
Python成长笔记 - 基础篇 (二)python基本语法
查看>>
87JS原生:跑马灯效果
查看>>
6.方法_EJ
查看>>
html 字符串 生成 pdf 完美解决中文不显示
查看>>
记一次由于Java泛型类型擦除而导致的问题,及解决办法
查看>>