Nodejs - Передача json объекта в функцию event.handler - PullRequest
0 голосов
/ 28 марта 2020

Извиняюсь заранее, так как я впервые работаю с NodeJs.

Мы используем продукт под названием QTest Pulse. Проще говоря, у нас есть webhook, который подключен к файлу nodejs, который выполняется на сервере и дает результаты. Я пытаюсь настроить свою локальную среду для отладки файла и внесения в него изменений.

Обычно мы вызываем файл, используя bash script , как показано ниже

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, чтобы вызвать событие в анализаторе. 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);

Когда я запускаю это, я всегда получаю тело внутри парсера. js как неопределено. Я также пытался жестко запрограммировать значение вместо чтения из файла. Тем не менее получить ту же проблему. Заранее спасибо.

1 Ответ

0 голосов
/ 28 марта 2020

2 Ошибки:

  1. опечатка: fs.readFileSync('payload.json').toString Вы забыли позвонить toString()

  2. Вы делаете неправильную деструктуру. Вы уже отправляете тело.

    exports.handler = function ({ body , константы, триггеры}, контекст, обратный вызов) {const formattedResults = processPayload (body); };

...