导出方法以在同一 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;

如你所见,你必须将它导出为一个模块,如果你只写导出......它会抛出一个内部服务器错误。