首页 > 解决方案 > Javascript - 如何导出函数并在同一个 model.js 文件中使用它?

问题描述

我来自 php oop 开发,我知道在 JS 中创建类的方法有很多。我需要 JS 开发人员的支持来解决这个问题。

这是场景:我正在使用 nodeJS 创建一个 AWS lambda 函数。我有一个模型在这里称为model1. 在这个模型中,我想导出一些函数。其他一些将在内部使用(如 oop php 中的私有方法)。

model1.js

'use strict'
const { var1 } = require('../utils/...')
const { var2 } = require('../utils/...')
...

exports.fn1 = async (par1) => { ... }
exports.fn2 = async (par2) => { ... }
exports.fn3 = async (par3) => { //This could be used outside and inside this file
let someVar = await someMysqlstatement ...
}
exports.fn4 = async (par1) => { //Would like to use fn3 here
let someVar2 await f3(par3)
}

我想知道是否可以导出 fn3 并同时使其可用module1.js。如果这不是一个好方法,那会是什么?

标签: javascriptnode.js

解决方案


你可以先定义函数

const fn3 = async (par3) => { ... }

然后在文件末尾导出要导出的那些:

module.exports = {
   fn3,
   ...
}

请注意,上面的导出语句将替换对象module.exports。您可以向其添加新属性,而不是替换它,如下所示:

exports.fn3 = fn3;
exports.fn4 = fn4;
...

分离函数定义和导出语句将允许您fn3module1.js文件中使用函数。


另请注意,nodeJS 也支持ES 模块

使用 ES 模块,您可以将函数导出为命名导出,例如:

export const fn3 = async (par3) => { ... }

如果您想在同一个文件中使用任何导出的函数,只需使用其名称即可。


推荐阅读