【问题标题】:Get binary file data sent from postman?获取邮递员发送的二进制文件数据?
【发布时间】:2018-10-24 22:28:16
【问题描述】:

我正在尝试获取从 nodejs 中的邮递员的二进制选项发送的数据,但是当我打印 req.body 时它返回空白对象。 谁能告诉我如何获取这些数据?

代码:

const express = require("express");
const app = express();
const bodyParser = require('body-parser');

app.use(bodyParser.text()); // This will parse your file

app.post('/data/UploadLogsToServer', async (req, res) => {
   res.status(200).send(req.body)
});

const server = app.listen(3000, function () {
    console.log('Server listening on port 3000');
});

Foo.txt 文件

StoreApiCode=retailgraph&Content={"Type": "INFO ","TimeStamp":"2018-10-10 12:05:16.881","IP":"2001:0:9d38:90d7:804:3589:8a3c:e43a","MacId":"84:7B:EB:3F:65:A4","OS":"Microsoft Windows 10 Home Single Language","Method":"SyncData","LineNo":527,"Message":"SyncData: Billing Software SyncData() called"}
{"Type": "INFO ","TimeStamp":"2018-10-10 12:05:17.060","IP":"2001:0:9d38:90d7:804:3589:8a3c:e43a","MacId":"84:7B:EB:3F:65:A4","OS":"Microsoft Windows 10 Home Single Language","Method":"SyncData","LineNo":38,"Message":"SyncData: Start"}
{"Type": "INFO ","TimeStamp":"2018-10-10 12:05:17.111","IP":"2001:0:9d38:90d7:804:3589:8a3c:e43a","MacId":"84:7B:EB:3F:65:A4","OS":"Microsoft Windows 10 Home Single Language","Method":"SyncData","LineNo":44,"Message":"SyncData: LocalConnectionString = Data Source=PARAM\\MSSQL2K8r2;Initial Catalog=HQPharma;User ID=sa;Password=developer;"}

【问题讨论】:

    标签: node.js postman


    【解决方案1】:

    在 Postman 中,确保您的标题具有 Content-Type = application/octet-stream。然后在您的app.post 定义中,分块读取数据。例如,下面它返回一个简单的 JSON 响应,但至少服务器看到了数据。您的版本似乎没有:

        var data = '';
        app.post('/data/UploadLogsToServer',function(req, res) {
    
        req.on('data', function(chunk) {
          data += chunk;
        });
    
        req.on('end', function() {
          console.log(data);
        });
    
        var responseJson = {
          "message": "success!!!"
        };
    
        return res.status(200).send(responseJson);
      });
    

    【讨论】:

    • 'end' 事件表示读取数据结束。在 req.on('end', 处理程序中,您拥有所有数据。在该处理程序中执行下一步需要执行的操作。
    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 2021-10-05
    • 2017-07-08
    • 2019-01-20
    • 1970-01-01
    • 2011-09-29
    • 2016-10-31
    • 2019-09-07
    相关资源
    最近更新 更多