使用express创建一个文件上传服务器

安装:npm i express cors multer

const express = require('express')
const app = express()
const cors = require('cors')
const multer = require('multer')
const fs = require('fs')
const path = require('path')

// multer插件配置:
//注册一个对象,dest里放的是上传的文件存储的位置,可以在当前目录下,建立一个static目录,上传的文件都放在这里
const upload = multer({dest: './static/'})
//使用中间件,没有挂载路径,应用的每个请求都会执行该中间件。any表示接受一切,具体参考文档。
app.use(upload.any())

// body
app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true })) 

// 跨域
app.use(cors())

app.get('/', (req, res) => {
  res.send('ok')
})

app.post('/upload', (req, res) => {
  console.log(req.files)

  //拿到后缀名
  var extname = path.extname(req.files[0].originalname);

  //拼接新的文件路径,文件加上后缀名
  var newPath = req.files[0].path + extname;

  //重命名
  fs.rename(req.files[0].path, newPath, function(err){
    if(err){
      res.send('上传失败')
    }else{
      res.send('上传成功')
    }
  })
})

app.listen(80, () => console.log('server running!'))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。