问题描述
在我的 lambda 中使用集成了反向代理的 http api 网关,我需要检查 API 的不同路由。我现在有 2 个 index.js
文件,在主文件中,我有处理程序:
...
const read_all_Todos = require("./lib/read_all/index");
const main = (event,context,callback) => {
let httpMethodCall = event.requestContext.http.method;
let itsCallingFrom = event.rawPath;
switch (itsCallingFrom) {
case '/v1/listalltodos':
read_all_Todos.test(event,callback);
break;
default:
return callback(null,{ method: httpMethodCall,rawPath: itsCallingFrom });
}
};
...
export function test(event,callback) {
let httpMethodCall = event.requestContext.http.method;
let itsCallingFrom = event.rawPath;
return callback(null,rawPath: itsCallingFrom });
}
当用户访问网址 /v1/listalltodos
时,我看到 message "Internal Server Error"
这里出了什么问题?
编辑:
每次我尝试在日志中导出函数时,我都会看到:
"errorMessage": "SyntaxError: Unexpected token 'export'",
解决方法
好吧,我想通了,它给出了内部服务器错误,因为它不使用常见的 JavaScript 导出实践,这是必须的:
1- 您像往常一样导入文件:
const read_all_todos = require("./lib/read_all/ReadAllTodos");
2- 您在同一个文件中调用它:read_all_todos.foo();
3- 这是关键/不同的部分,您像这样定义导出
function internal_foo () {
console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
return 1;
}
module.exports.foo = internal_foo;
如您所见,您必须将其导出为模块,如果您只编写 export ... 它会引发内部服务器错误。