提前道歉,因为这是我第一次使用NodeJ。
我们正在使用一种名为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
并且有效载荷.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个错误:
-
打字错误:
fs.readFileSync('payload.json').toString
您忘记呼叫toString()
-
你做了错误的销毁操作。您已在发送正文。
exports.handler=函数({body,常量,触发器},上下文回调){const formattedResults=processPayload(主体(;};