获取奇怪的错误错误类型错误:app.use()需要一个中间件函数


const upload = require('../middleware/upload')
const user = require('../models/user')
class Routes {
constructor(app) {
this.configureCors(app)
app.use(upload)
app.use('/fileupload', (req, res) => {
res.send("test")
})
}
configureCors(app) {
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'POST, PUT, DELETE, GET');
res.setHeader('Cache-Control', 'no-cache');
next();
});
}    
}
module.exports = Routes

上传.js

const path = require('path')
const multer = require('multer')
const storage = multer.diskStorage({
destination : function(req, file, cb) {
cb(null, 'uploads/')
},
filename : function(req, file, cb) {
let extn = path.extname(file.originalName)
cb(null, Date.now() + extn)
}
})
const Upload = multer({
storage : storage,
fileFilter : function(req, file, callback) {
if(
file.mimetype == 'image/png' ||
file.mimetype == 'image/jpg'
) {
callback(null, true)
} else {
console.log("Only support jpg and png images")
callback(null, false)
}
},
limit : {
fileSize : 1024 * 1024 * 2
}
})
module.exports = Upload

我不知道Error TypeError: app.use() requires a middleware function可能是video.js期望返回函数的错误在哪里,就是这个错误吗?请看一看并指导我。

我想让它单独的文件上传设置通过中间件

感谢

您需要使用multer提供的选择器,如本文文档中所述。

要选择一个文件上传,请将代码更改为:

//...
constructor(app) {
this.configureCors(app)
app.use(upload.single('file'))   // <= changed line of code
app.use('/fileupload', (req, res) => {
res.send("test")
})
}
//...

最新更新