Node.js实现文件上传的示例

node 中的文件上传这边介绍的是node中的两个框架(express和koa)

express支持的文件上传

1.首先安装express

npm  install express

2.写简单的接口并监听相应的端口号

const express = require('express')
const app = express()
app.listen(6902, () => {
  console.log('form-data中间件的解析')
})

3、安装multer解析form-data中的文件
3.1 安装multer

npm install multer

3.2。multer的使用

const multer = require('multer')
const storage = multer.diskStorage({
    
    
  destination: function (req, file, cb) {
    
    
    cb(null, './uploads')
  },
  filename: function (req, file, cb) {
    
    
    const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
    cb(null, file.fieldname + '-' + uniqueSuffix)
  }
})

const upload = multer({
    
     storage: storage })
app.post('/upload', upload.array('avatar'), (req, res, next) => {
    
    
  console.log(req.files)
  res.end('文件上传成功')
})

完整代码

const express = require('express')
const multer = require('multer')
const app = express()
const storage = multer.diskStorage({
    
    
  destination: function (req, file, cb) {
    
    
    cb(null, './uploads')
  },
  filename: function (req, file, cb) {
    
    
    const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
    cb(null, file.fieldname + '-' + uniqueSuffix)
  }
})

const upload = multer({
    
     storage: storage })
// app.use(express.json())
// app.use(express.urlencoded({extended: true}))
// app.use(upload.arra())
// app.post('/login', (req, res, next) => {
    
    
//   console.log(req.body)
//   res.end('login server')
// })
app.post('/upload', upload.array('avatar'), (req, res, next) => {
    
    
  console.log(req.files)
  res.end('文件上传成功')
})
app.listen(6902, () => {
    
    
  console.log('form-data中间件的解析')
})

koa中文件上传

  1. 安装koa
npm install koa
2. 安装koa-router
npm install koa-router
使用方法

```javascript
const Router = require('koa-router')
const uploadRouter = new Router()
uploadRouter.post('/upload', upload.single('file'), (ctx, next) => {
  console.log('文件上传成功', ctx.req.file)
  ctx.response.body = '文件上传666'
})
module.exports = uploadRouter

3. 安装koa-multer

```javascript
npm install koa-multer

使用代码

const multer = require('koa-multer')
const upload = multer(
  {
    
     
    dest: './uploads/' 
  }
)
uploadRouter.post('/upload', upload.single('file'), (ctx, next) => {
    
    
  console.log('文件上传成功', ctx.req.file)
  ctx.response.body = '文件上传666'
})

首先这里我们采用路由的写法
在router文件夹upload.js
写upload接口的文件

  1. upload.js
const Router = require('koa-router')
const multer = require('koa-multer')
const uploadRouter = new Router()
const upload = multer(
  {
    
     
    dest: './uploads/' 
  }
)
uploadRouter.post('/upload', upload.single('file'), (ctx, next) => {
    
    
  console.log('文件上传成功', ctx.req.file)
  ctx.response.body = '文件上传666'
})
module.exports = uploadRouter

2.index.js

const koa = require('koa')
//  引入路由
const upRouter = require('./router/upload')
const app = new koa()
// 使用路由
app.use(upRouter.routes()).use(upRouter.allowedMethods())
app.listen(8098, () => {
    
    
  console.log('server 文件上传')
})

猜你喜欢

转载自blog.csdn.net/weixin_45664217/article/details/122725401