Express.js:未定义的请求正文(base64)

时间:2019-05-27 06:58:25

标签: javascript node.js csv express

我正在尝试将.xls表转换为.csv行。

我找到了有助于此操作的库,其名称为XLSX

第一步,我将.xls表编码为base64格式。

现在我正尝试使用Postman发送发帖请求(以base64代码作为请求正文)

但是当我尝试console.log req.body时,我收到的是未定义的。您能告诉我我的应用程序可能在哪里出错吗?

我的 app.js

const express = require('express');
const dataConverter = require('./inputDataConverter');
const { errorHandler } = require('./../error/error-handler');

const app = express();
const port = process.env.PORT || 5000;
const domain = process.env.DOMAIN || '0.0.0.0';

app.post('/convert', dataConverter);
app.all('*', (req, res, next) => next('Invalid request'));

app.use(errorHandler);

app.listen(port, () => {
  console.log(`Microservice runs on http://${domain}:${port}`);
});

inputDataConverter.js:

const XLSX = require('xlsx');

module.exports = (req, res, next) => {

  console.log('First console.log ' + req.body);

  const getWorkbook = (data) => {
    let wb = null;

    if (!data.type || data.type === 'base64') {
      wb = XLSX.read(data.body, { type: 'base64' });
    }

    console.log('everything is working');
    return wb;
  };

  const requestData = req.body;
  console.log(requestData);

  getWorkbook(requestData);
};

1 个答案:

答案 0 :(得分:0)

如摩尔达所说 您可能需要身体分析器 https://www.npmjs.com/package/body-parser

在新版本中,实际上内置了body-parser来表达,因此您可以像这样使用它:

app.use(express.json())

我真的建议您使用express-generator包生成基本的Express应用程序 https://www.npmjs.com/package/express-generator

您可能会找到不需要的东西 只是去掉