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中文件上传
- 安装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接口的文件
- 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 文件上传')
})