nodejs03 middleware -2 path, multe

path system module
disk path:
encoding:
Windows: 'C: \ User \ ADMIN \ a.jpg'
MAC: ~ / Desktop / 1901
the 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: file upload
multer-> file name will be randomly -> fs module renamed -> path system module parses the disk path

    文件上传:前端表单->后端接收到文件本身->保存到服务器上->给数据库记录文件一些信息->库返回给nodejs相关信息->nodejs返回给前端
            前端: <input type=file enctype="multipart/form-data" name="fieldname"
            后端: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)=>{});

`

Guess you like

Origin www.cnblogs.com/sansancn/p/11012841.html