我正在使用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};
};
在此先感谢您的任何建议/帮助。
答案 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');