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

Итак, у меня есть следующие функции на моем serverless.yml

functions:
getEstimate:
handler: handler.getEstimate
events:
  - http:
      path: /get-quotation
      method: get

getQuotation: 
handler: lalamove/index.getQuotation
events:
  - http:
      path: /lalamove-get-quote
      method: get

, и у меня есть этот код в handler.js, который вызывает функцию getQuotation () из lalamove / index.getQuotation.

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


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

после развертывания без сервера, и я смотрю запустить конечную точку getEstimate, я получаю {"message": "Internal server error"}, но если я пытаюсь запустить getQuotation, я получаю {"message":"hermbs"}, который также должен быть напечатан при запуске getEstimate.

это мой index.js

'use strict';

module.exports.getQuotation = (data, context, callback) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify({
            message: "hermbs",
        }),
    };
    callback(null, response);
};

я что-то здесь упускаю?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Я понял это:

module.exports.getEstimate = (event, context, callback) => {
  var data = JSON.parse(event.body);

   lalamove.getQuotation(data ,context, function(err, data){
     callback(null,data)
   });
};
0 голосов
/ 26 июня 2019

Не думаю, что лучше всего вызывать другую лямбда-функцию, подобную этой. Я бы посоветовал извлечь нужный вам код в третий модуль «shared / util», и оба модуля импортировали необходимые функции из третьего модуля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...