我在模块中定义了一个类:

"use strict";

var AspectTypeModule = function() {};
module.exports = AspectTypeModule;

var AspectType = class AspectType {
    // ...    
};

module.export.AspectType = AspectType;

但我收到以下错误信息:

TypeError: Cannot set property 'AspectType' of undefined
    at Object.<anonymous> (...\AspectType.js:30:26)
    at Module._compile (module.js:434:26)
    ....

我应该如何导出这个类并在另一个模块中使用它?我见过其他SO问题,但当我try 实现它们的解决方案时,我会收到其他错误消息.

推荐答案

如果您在Node 4中使用ES6,那么在没有transpiler的情况下无法使用ES6模块语法,但CommonJS模块(Node的标准模块)的工作原理相同.

module.export.AspectType

应该是

module.exports.AspectType

因此,错误消息"无法将属性"AspectType"设置为未定义",因为module.export === undefined.

还有

var AspectType = class AspectType {
    // ...    
};

你能写吗

class AspectType {
    // ...    
}

得到基本相同的行为.

Node.js相关问答推荐

GraphQL MongoDB Mongoose填充字段未获取多个类别

在Node.js下使用PostgreSQL客户端聚合PostgreSQL中的用户定义类型

设置默认 node 版本

JsonwebToken过期后如何注销和清除cookie?

无法从MongoDB文档中保存的对象数组中获取对象的属性

我的 React + Express 应用程序不断向我的数组添加一个空对象

为什么我的 Node.js 应用程序在登录时无法正确验证密码(使用 Passport-local 和 bcryptjs)?

在 Nest 项目上运行 Jest 测试时,我的文件无法找到一个在测试之外没有任何问题的模块

如何使用mongoose引用不在项目中的模型

为什么我不能将 id 发送到后端并通过 findByIdAndRemove() 删除项目?

错误 node :错误:绑定消息提供 16 个参数,但准备语句需要 15 个

Node.js 上的 CLI 应用程序如何通过 child_process 将选项值作为参数传递给 Shell 命令

Node.js |如何在微服务之间转发标头?

node.js 中 res.setHeader 和 res.header 的区别

使用加密模块的流功能获取文件的哈希(即:没有 hash.update 和 hash.digest)

bash:npm:找不到命令?

Fluxible 中的脱水和再水合代表什么?

Node.js 与 .net 中的异步/等待

大型项目的 NodeJS vs Play 框架

'node' 未被识别为内部或外部命令