问题在multer node.js中将请求从获取更改为发布并更改上传文件的动态目标

嘿,我使用Node js中的multer包来上传文件。

我将其设为动态,但是请求处于get状态,我无法将其更改为post。

它仅对我有帮助。

现在在做什么? 它将文件保存在调用流的新文件夹中,并从客户端获取ID。 我需要替换它以发布并获取ID,但我想将逻辑移至路由并使其保持不变。谢谢

我的代码:

文件上传服务:

const path = require("path");
const multer = require("multer");
const crypto = require("crypto");
const models = require("../models");
const fsex = require("fs-extra");
const today = new Date();
const date =
  today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();

const storage = multer.diskStorage({
  destination: (req,file,callback) => {
    let flowID = req.params.flowID;
    let path = `./uploads/flow/${flowID}`;
    fsex.mkdirsSync(path);
    callback(null,path);
  },filename: (req,cb) => {
    crypto.pseudoRandomBytes(8,(err,raw) => {
      if (err) return cb(err);
      cb(
        null,date + "_" + raw.toString("hex") + "_" + path.extname(file.originalname)
      );
    });
  }
});

const upload = multer({ storage: storage }).single("upload");


module.exports = {
  upload: upload,};

我的路线:

router.get("/uploadfile/:flowID",upload,(req,res,next) => {
  const file = req.file;
  const flowID = req.params.flowID;
  if (!file) {
    const error = new Error("Please upload a file");
    error.httpStatusCode = 400;
    return next(error);
  } else {
    createFileInDB(file.originalname,flowID,file.filename)
      .then(() => {
        console.log("File Created");
        res.json(file);
      })
      .catch(err => {
        res.status(500).send(err);
      });
  }
});
einspei 回答:问题在multer node.js中将请求从获取更改为发布并更改上传文件的动态目标

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3075539.html

大家都在问