导出方法以在同一 lambda 函数中的其他文件中使用 - Node.js
Export methods to use in other file in same lambda function- Node.js
在我使用集成了反向代理的 http api 网关的 lambda 中,我需要检查 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, context, callback);
break;
default:
return callback(null, { method: httpMethodCall, rawPath: itsCallingFrom });
}
};
...
在我的另一个文件中:
export function test(event, context, callback) {
let httpMethodCall = event.requestContext.http.method;
let itsCallingFrom = event.rawPath;
return callback(null, { method: httpMethodCall, rawPath: itsCallingFrom });
}
当用户转到 url /v1/listalltodos
我看到 message "Internal Server Error"
这是怎么回事?
编辑:
每次我尝试在日志中导出函数时,我都会看到:
"errorMessage": "SyntaxError: Unexpected token 'export'",
那么在 lambda 中导出方法的正确方法是什么?
好吧,我想通了,它给出了内部服务器错误,因为它没有使用常见的 JavaScript 导出实践,这是必须完成的方式:
1- 您照常导入文件:
const read_all_todos = require("./lib/read_all/ReadAllTodos");
2- 您在同一个文件中调用它:read_all_todos.foo();
3- 这是 key/different 部分,您可以这样定义导出
function internal_foo () {
console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
return 1;
}
module.exports.foo = internal_foo;
如你所见,你必须将它导出为一个模块,如果你只写导出......它会抛出一个内部服务器错误。
在我使用集成了反向代理的 http api 网关的 lambda 中,我需要检查 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, context, callback);
break;
default:
return callback(null, { method: httpMethodCall, rawPath: itsCallingFrom });
}
};
...
在我的另一个文件中:
export function test(event, context, callback) {
let httpMethodCall = event.requestContext.http.method;
let itsCallingFrom = event.rawPath;
return callback(null, { method: httpMethodCall, rawPath: itsCallingFrom });
}
当用户转到 url /v1/listalltodos
我看到 message "Internal Server Error"
这是怎么回事?
编辑:
每次我尝试在日志中导出函数时,我都会看到:
"errorMessage": "SyntaxError: Unexpected token 'export'",
那么在 lambda 中导出方法的正确方法是什么?
好吧,我想通了,它给出了内部服务器错误,因为它没有使用常见的 JavaScript 导出实践,这是必须完成的方式:
1- 您照常导入文件:
const read_all_todos = require("./lib/read_all/ReadAllTodos");
2- 您在同一个文件中调用它:read_all_todos.foo();
3- 这是 key/different 部分,您可以这样定义导出
function internal_foo () {
console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
return 1;
}
module.exports.foo = internal_foo;
如你所见,你必须将它导出为一个模块,如果你只写导出......它会抛出一个内部服务器错误。