如何使用AWS Lambda导入功能?

时间:2019-03-13 21:55:30

标签: javascript amazon-web-services aws-lambda

我正在使用api gateway来向我的lambda中调用发布请求,该请求会检查是否httpMethod is post,如果发布,则执行以下操作。

默认情况下,入口点是我保留的index.js,但是我在考虑是否使用相同的lambda,我还可以检查它是否是get httpMethod,如果是,那么请执行下列操作。但是我想分开我的代码。对于相同的lambda函数,我可以添加文件。因此,我尝试添加另一个名为post.js的文件,然后在index.js处要求

尽管如此,它不是在post.js中传递值或调用导出的函数。

index.js

  const postHandler = require('./post.js');

  exports.handler = async (event, context) => {
      try {
          const httpm = event.context["http-method"];
          const rbody = event["body-json"];

          console.log(postHandler, 'post handler function?');  // { postHandler: [AsyncFunction] } 'post handler function?'
          console.log(httpm, 'httpmhttpm');  // 'POST'

          if (httpm === 'POST') return postHandler(rbody);
      } catch (e) {
          return e;
      }

  };

post.js //这里没有做任何特别的事情,但是这些控制台都没有出现

exports.postHandler = async (rbody) => {
    console.log('I am inside postHandler()');
    console.log(rbody);

    return {status: true};
};

在此先感谢您的任何建议/帮助。

1 个答案:

答案 0 :(得分:1)

// default export (change post.js file)
module.exports = async (rbody) => {
    console.log('I am inside postHandler()');
    console.log(rbody);

    return {status: true};
};

// OR !

// change (index.js file)
const { postHandler } = require('./post.js');