繁体   English   中英

Nodejs - 将 json 对象传递给 event.handler 函数

[英]Nodejs - Passing json object to a event.handler function

提前道歉,因为这是我第一次使用 NodeJs。

我们正在使用一种名为 QTest Pulse 的产品。 简单来说,我们有一个 webhook,它连接到在服务器上执行并产生结果的 nodejs 文件。 我正在尝试设置我的本地环境来调试文件以对其进行更改。

我们通常使用bash 脚本调用文件,如下所示

curl -X POST \
    https://pulse-7.qtestnet.com/webhook/ \
    -H 'cache-control: no-cache' \
    -H 'content-type: application/json' \
    -d @payload.json

payload.json包含如下数据

{"testcycle" : "178173", "result" : "encrypted data", "projectId" : "90354"}

服务器parser.js上的文件包含

function processPayload(payload) {
    const projectId = payload.projectId;
    const cycleId = payload.testcycle;

    console.log(projectId);
    console.log(cycleId);
}

exports.handler = function (
    {event: body, constants, triggers},
    context,
    callback
) {
    const formattedResults = processPayload(body);
};

我试图创建一个名为runner.js的文件来调用 parser.js 中的事件

const parser = require('./Parser');
const fs = require('fs');

const jsonContent = fs.readFileSync('payload.json').toString;
let output = parser.handler({body: jsonContent, constants: "", triggers: ""}, "", "");

console.log(output);

当我运行它时,我总是将 parser.js 中的 body 设为未定义。 我还尝试对值进行硬编码而不是从文件中读取,但仍然遇到相同的问题。 提前致谢。

2 错误:

  1. 错字: fs.readFileSync('payload.json').toString你忘记调用toString()

  2. 你正在做错误的解构。 你已经在发送身体了。

    export.handler = function ( { body , constants, triggers}, context, callback ) { const formattedResults = processPayload(body); };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM