如何在快速节点服务器中获取`req`的参数

时间:2016-07-17 13:11:36

标签: javascript node.js express

我的UI中有两个参数。一个是file,另一个是dataObject。在utils中,我编写了代码:

importPlan: function (formData, planDTO) {
    return axios.post(`${importPlanAPIPath}`, planDTO, formData);
  }

在路由器中,我将其发送为:

router.post('/plans/importPlan/', planController.importPlan);

在控制器中,我已将请求写为:

async importPlan(req, res, cb) {
    let plan,
      planDTO = req.body;

    const formData = new FormData(),
      file = req.files.file;

    formData.append('file', file.data);

    console.log('planDTO => ', planDTO);
    console.log(file.data, file.name);

    try {
      plan = await req.clients.planClient.importPlan(formData, planDTO);
    } catch (err) {
      return cb(err);
    }

    res.json(plan);
  }

req.body中,我正在获取planDTO,但我没有在req中获得任何req.files。我也使用bodyparser来解析请求。我也在使用busboybodyparser来表示multipart / form-data。

有人可以告诉我我做错了什么吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

yourparam是参数名称

    router.post('/plans/importPlan/:yourparam', planController.importPlan);

         async importPlan(req, res, cb) {

         var yourparam= req.params.yourparam;

            ..........

         res.json(plan);
         }

使用此模块进行文件上传https://www.npmjs.com/package/multer