Loading

multer模块和SMS处理上传文件

multer模块的使用

1.1Why use it

fs内置模块虽然可以对文件进行读取和写入,但往往是本地的操作如果是传递给服务器的我呢见,我们会使用multer模块来处理‘

1.2安装

控制台输入npm install multer

1.3使用

const express = require('express')
//导入multer
const multer  = require('multer')
//初始化上传信息
//通过dest指定要将上传的文件存到什么地方
const upload = multer({ dest: 'uploads/' })

const app = express()

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  //upload.single('avatar') 这个是图片数据的key
  //req.file 是 `avatar` 文件的信息
  //req.body 将具有文本域数据,如果存在的话
})

1.4注意事项

1.multer会将服务器的文件保存到指定的目录,并且会为其取一个不会重复的文件名,可以通过req.file.filename获取该文件名

2.这个文件名不包含后缀名

3.multer设置的upload路径的设置是从项目文件开始的,不需要../回到上一级,可以直接设置项目文件的对应位置.

4.拓展:静态托管的页面不需要输入像文件夹的名字再/index.html,再托管之后直接通过index.html就可以打开

5.sms-新增数据

//新增数据模块图片数据的实现--sms处理数据
module.exports.add = (req, res) => {
    //1. 取出浏览器通过post传递过来的数据.
    const stu = req.body;

    //2. 同时,接收浏览器传递过来的头像.
    //2.2 multer模块
    //  修改上传到服务器的文件的后缀名.
    // 先取到文件本身的名字.
    const oldName = path.join(__dirname, '../public/upload',req.file.filename);
    // 取到文件本身的后缀名
    const arr = req.file.originalname.split('.');
    const hzm = arr[arr.length-1];
    const newName = oldName + '.' + hzm;
    // 改名字.
    fs.rename(oldName, newName, err=>{
        if(err) res.status(500).send({code:500, msg:'服务器内部发生错误'});
    });

    //指定数据库中avator的值是文件的名字
    stu.avator = req.file.filename + '.' + hzm;

6.sms-修改上传文件

const fs = require('fs');
const path = require('path');


const oldName = path.join(__dirname,'data/1.txt');
const newName = path.join(__dirname,'data/2.txt');


fs.rename(oldName, newName, err=>{
    if(err) return console.log(err);
    console.log('修改成功');
});

1.5路径参数

普通的传参方式

1. URL后面跟1个问号     ?id=10    
   - 通过`req.query`拿到
2. POST传递的数据
   - 通过`req.body`拿到
3. 文件数据
   - 通过`multer`中间件接收

路径参数

eg:http://127.0.0.1/api/student/delete/1
	http://127.0.0.1/api/student/delete/2

书写格式和参数获取

app.delete('api/student/delete/:id', (req, res) => {
    req.params.id//取到路径参数id,    
})

前面部分必须要和路由一样,冒号的部分必须要有,但是是什么不重要。据此我们在逻辑处理模块的时候可以不用判断传过来的id

image-20210527213702250

posted @ 2021-05-27 21:39  大黄树  阅读(148)  评论(0)    收藏  举报