Как сделать почтовый запрос в node.js - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь отправить запрос на публикацию в API, и, похоже, ничего не выводится.Я использую модуль запроса для node.js, хотя я не знаю, правильно ли отформатирован мой запрос.

Я много не пробовал, а только несколько разных соглашений в моем запросе

exports.detectSong = function(base64) {
    console.log("here1");
    var request = require('request');
    console.log("here2");

    request({
        url: 'https://audd.p.rapidapi.com',
        method: 'post',
        headers: { "X-RapidAPI-Host": "audd.p.rapidapi.com", 'X-RapidAPI-Key': '***************************************************' }, 
        timeout: 10000,
        body: JSON.stringify({
            audio: base64,
            method: 'recognize',
            return: 'lyrics,timecode'
        })
    }, function(error, result, body) {
        console.log("here3")
        if (error) {
            console.log(error);
        } else if (result.statusCode === 500) {
            console.log('error');
        } else {
            console.log(body);
        }
    });
    console.log("here4");
};

Так что вконсоль, на которую я рассчитываю получить вывод 'here4', когда я не получаю это ниже, является консолью, которую я получаю:

10:42:17
START RequestId: 725f96ad-13e0-4d8b-a469-76161c5df2e4 Version: $LATEST
10:42:17
2019-06-25T10:42:17.817Z 725f96ad-13e0-4d8b-a469-76161c5df2e4 INFO here1
10:42:21
2019-06-25T10:42:21.019Z 725f96ad-13e0-4d8b-a469-76161c5df2e4 INFO here2
10:42:21
2019-06-25T10:42:21.199Z 725f96ad-13e0-4d8b-a469-76161c5df2e4 INFO here4
10:42:21
END RequestId: 725f96ad-13e0-4d8b-a469-76161c5df2e4
10:42:21
REPORT RequestId: 725f96ad-13e0-4d8b-a469-76161c5df2e4 Duration: 4037.28 ms Billed Duration: 4100 ms Memory Size: 128 MB Max Memory Used: 92 MB

И если это помогает, возвращаемое мной значение равно нулю.

Спасибо за помощь!

1 Ответ

0 голосов
/ 25 июня 2019
REPORT RequestId: 725f96ad-13e0-4d8b-a469-76161c5df2e4 Duration: 4037.28 ms Billed Duration: 4100 ms Memory Size: 128 MB Max Memory Used: 92 MB

Используете ли вы AWS lambda для запуска своего кода?

Я полагаю, что ваша лямбда закончилась до того, как ваше приложение получило ответ от сервера. Вы можете попытаться вернуть обещание, тогда AWS будет ждать, пока обещание будет выполнено или отклонено.

exports.handler = function() {
var request = require('request');
var promise = new Promise(function (resolve, reject) {
    request({
        url: 'https://httpbin.org/post',
        method: 'post',
        body: JSON.stringify({})
    }, function (error, result, body) {
        if (error) {
            reject(error)
        }
        resolve(body)
    });
});

promise.then(function (result) {
    console.log(result);
}).catch(function (err) {
    console.error(err);
});

return promise;

};

Обновление:

handler.js - файл, который вы используете для описания своей лямбды

exports.handler = function(event, context, callback) {
    console.log("here1");
    var request = require('request');
    console.log("here2");
    var promise = new Promise(function(resolve, reject) {
        request({
            url: 'https://audd.p.rapidapi.com',
            method: 'post',
            headers: { "X-RapidAPI-Host": "audd.p.rapidapi.com", 'X-RapidAPI-Key': '***************************************************' },
            timeout: 10000,
            body: JSON.stringify({
                audio: base64,
                method: 'recognize',
                return: 'lyrics,timecode'
            })
        }, function(error, result, body) {
            console.log("here3");
            if (error) {
                console.log(error);
                reject(error)
            } else if (result.statusCode === 500) {
                console.log('error');
                reject(result.statusCode);
            } else {
                console.log(body);
                resolve(body);
            }
        });
    });
    console.log("here4");
    return promise;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...