javascript - Class.method 不是使用 ES6 类的函数
问题描述
我创建了一个类,我想在我的 node.js 应用程序的路由中使用该方法。一个简单的代码片段描述了我在实际应用中遇到的一个类似问题。
myClass.js:
class MyClass {
static async sayHi(name) {
setTimeout(() => {
return `Hello ${name}`
}, 3000)
}
}
module.exports = new MyClass()
index.js:
const MyClass = require('./myClass');
console.log(MyClass.sayHi)
我收到了这个错误:
undefined
试:
console.log(MyClass.sayHi('Hello'))
返回:
MyClass.sayHi is not a function
解决方案
您正在导出MyClass
. 静态方法不是在类的实例上调用,而是在类本身上调用。
如果您MyClass
像这样导出:module.exports = MyClass
,您的第二种方法应该有效。
编辑:
正如@TJ Crowder 指出的那样。如果该类位于名为 MyClass.js 的文件中,则从那里导入而不是索引。
推荐阅读
- ibm-mobilefirst - ibm mobilefirst v7.1 在打开控制台时出错
- arrays - 二分查找的重复(将元素插入数组的时间)
- docker - Visual Studio 运行 Docker 项目问题
- c++ - OpenGL single channel viability to multiple channel
- python - 忽略 td beautifulsoup 中的 N/A 值
- python - 如何删除pycharm中的标签
- ios - 没有输出缓冲区时的 AudioUnit 噪声
- c# - 在我们仅存储图像名称的数据库表中如何在gridview中显示图像。如果它在文件夹中,如何提供 imgae 路径。图片
- d3.js - 使用 JSON - D3 布局包时 X 和 Y 为 NaN
- java - UnityException:找不到合适的 JDK 安装