без сервера (node-aws) "TypeError", "errorMessage": "обратный вызов не является функцией" - PullRequest
0 голосов
/ 21 июня 2019

на моем handler.js

'use strict';
var lalamove = require('./lalamove/index.js');

module.exports.getEstimate = (event, context, callback) => {
  lalamove.getQuotation("hi");
};

Я передаю строку "привет" на getQuotation() на lalamove/index.js

'use strict';

module.exports = {
    getQuotation: function(event,context,callback){
        const response = {
            statusCode: 200,
            body: JSON.stringify({ message: event })
          }
        console.log('response', response);
        callback(null,response.body);
    }
}

и он входит в консольный журнал. он работает в консоли, но не может быть возвращен. когда я проверяю логи:

Ошибка вызова ошибки {"errorType": "TypeError", "errorMessage": "обратный вызов не является функцией", "stack": ["TypeError: обратный вызов не является функцией", "на Object.getQuotation (/ var / task / lalamove / index.js: 10: 9) "," в Runtime.module.exports.getEstimate [как обработчик] (/var/task/handler.js:14:12) "," в Runtime.handleOnce (/ var / runtime / Runtime.js: 63: 25) "," at process._tickCallback (internal / process / next_tick.js: 68: 7) "]}

Я пытался удалить context, но он все тот же, я пытался использовать return вместо callback, но он не работает, я все еще получаю:

{"message": "Internal server error"}

вместо

{ statusCode: 200, body: '{"message":"hi"}' }

1 Ответ

4 голосов
/ 21 июня 2019

Чтобы получить ответ, вы реализуете функцию обратного вызова в функции вызывающего абонента, как показано ниже.

'use strict';
var lalamove = require('./lalamove/index.js');

module.exports.getEstimate = (event, context, callback) => {
  lalamove.getQuotation("hi", context, function(response) {
       console.log(response)//it will print return value
   });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...