javascript - 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
。如果这不是一个好方法,那会是什么?
解决方案
你可以先定义函数
const fn3 = async (par3) => { ... }
然后在文件末尾导出要导出的那些:
module.exports = {
fn3,
...
}
请注意,上面的导出语句将替换对象module.exports
。您可以向其添加新属性,而不是替换它,如下所示:
exports.fn3 = fn3;
exports.fn4 = fn4;
...
分离函数定义和导出语句将允许您fn3
在module1.js
文件中使用函数。
另请注意,nodeJS 也支持ES 模块。
使用 ES 模块,您可以将函数导出为命名导出,例如:
export const fn3 = async (par3) => { ... }
如果您想在同一个文件中使用任何导出的函数,只需使用其名称即可。
推荐阅读
- java - 如何检查数组上的重复字符串
- c# - 无法将项目更新到 .NET 5
- reactjs - TypeError array.map 不是函数
- javascript - 单击另一张照片时如何使照片出现?Javascript,DOM
- python - 模拟连续调用
- python - 如何在 Python 中确定数组中有多少项在给定间隔之外?
- java - 我们如何通过 `getClass().getName()` 在源文件中定位 lambda 位置?
- json - Marathon 获取 appId:指定路径
- python - Cython 字符串中的循环数据
- angular - 在angular9中成功调用api后触发其他组件方法