【问题标题】:Use multer for File-Uploads inside a Express Router在 Express 路由器中使用 multer 进行文件上传
【发布时间】:2016-03-19 03:48:08
【问题描述】:

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

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

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

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对于经过身份验证的用户?

【问题讨论】:

    标签: javascript node.js express multer


    【解决方案1】:

    好的,我知道了。

    我可以使用

    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){
           [...]
        })
    

    【讨论】:

      【解决方案2】:

      对我来说,它也有效。

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

      【讨论】:

      • 我花了很多时间试图完成这项工作。 var uploadMulter = multer({ dest: directory }); router.post('/upload', uploadMulter.single("html_input_element_name"), function(req,res, next) {... 。 Multer repo In an average web app, only dest might be required, 中有一行。不要相信那条线...您还需要.single(fieldname) 电话...非常感谢...
      【解决方案3】:

      在我的情况下,我尝试了所有方法,但它不起作用,但我找到了解决方案

      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 中编写代码并重定向到另一个文件的原因。

      【讨论】:

        猜你喜欢
        • 2021-01-24
        • 2018-07-21
        • 2016-10-22
        • 2020-05-21
        • 2022-01-22
        • 1970-01-01
        • 2015-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多