在快速路由器内使用multer进行文件上传

Use multer for File-Uploads inside a Express Router

本文关键字:文件 multer 路由器      更新时间:2023-09-26

我用node.js和Express构建了一个可工作的REST-API。

现在我需要一个文件上传端点,它接受上传的文件并对其进行处理。

我正在使用快速路由器和一些身份验证中间件。

server.js(摘录)

var router = express.Router()
app.use("/api", router)
[...]
router.use(function(req, res, next) {
    //Authentification middleware
    [...]
    next()
})
router.route("/upload")
     .post(function(req, res){
        //upload logic
     })

我如何使用multer将上传的文件作为req.file(或左右)提供,但只能在/api/upload中提供,并用于身份验证用户?

好的,我明白了。

我可以使用

var multer = require("multer")
var upload = multer({ dest: "some/path" })
[...]
router.route("/upload")
    /* replace foo-bar with your form field-name */
    .post(upload.single("foo-bar"), function(req, res){
       [...]
    })

对我来说,它也起到了作用。

var multer = require("multer")
var upload = multer({ dest: "path" })
router.post("/upload", upload.single("foo-bar"), function(req, res) {
  ...
}

在我的案例中,我尝试了所有的东西,但都不起作用,但我找到了解决方案

app.js

const multer  = require('multer');
const storage =  {
    dest:  'UPLOAD/PATH/'
}
const upload = multer(storage);
app.post('/myupload', upload.single('FILE_NAME'), (req,res)=>{
  res.send('Upload');
});

我试过很多次使用express.Router(),但它不起作用,这就是为什么我在app.js中编写代码并重定向到另一个文件。