当前位置: 首页 > 面试题库 >

使用node.js导出类

李烨烁
2023-03-14
问题内容

我在文件jasmine-node中运行了以下测试代码 bob_test.spec.js

require('./bob');

describe("Bob", function() {
  var bob = new Bob();

  it("stating something", function() {
    var result = bob.hey('Tom-ay-to, tom-aaaah-to.');
    expect(result).toEqual('Whatever');
  });
});

为了使测试通过,我在名为的文件中编写了以下生产代码 bob.js

"use strict";

var Bob = function() {
}

Bob.prototype.hey = function (text) {
  return "Whatever";
}

module.exports = Bob;

当我运行测试时-使用jasmine-node .-得到以下F

Failures:

1) Bob encountered a declaration exception
Message:
    ReferenceError: Bob is not defined
Stacktrace:
    ReferenceError: Bob is not defined
    at null.<anonymous> (/Users/matt/Code/oss/deliberate-practice/exercism/javascript/bob/bob_test.spec.js:4:17)
    at Object.<anonymous> (/Users/matt/Code/oss/deliberate-practice/exercism/javascript/bob/bob_test.spec.js:3:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)

Finished in 0.02 seconds
1 test, 1 assertion, 1 failure, 0 skipped

根据我对Javascript的了解,我觉得这应该可行。node.js对构造函数和模块导出有何不同之处,使它无法正常工作,我认为应该这样做?


问题答案:

require返回一个对象,您应该将其存储在某个地方

var Bob = require('./bob');

然后使用这个对象

var bobInstance = new Bob();


 类似资料:
  • 问题内容: 在我正在合作的项目中,关于可以使用哪种模块系统,我们有两个选择: 导入使用的模块,并使用导出和。 使用ES6导入模块,并使用ES6导出 相互使用是否对性能有好处?如果要在Node模块上使用ES6模块,还有其他什么应该知道的吗? 问题答案: 相互使用是否对性能有好处? 请记住,还没有JavaScript引擎本身支持ES6模块。您说自己正在使用Babel。无论如何,Babel都会默认将其转

  • 如何将所有数据批量存储到后端? 模式之间的引用很少,因此是否会创建新的'_id'从而影响我的引用 如果您认为这不是导出数据的正确方法,那么如何使用node Express来完成?

  • 问题内容: 如何使用Netbeans将Java项目导出到JAR?我找不到类似Eclipse中的选项。 问题答案: 您需要启用该选项 (但默认情况下启用此功能)

  • 我有日蚀。 我可以用库导出jar(Export- 导出的libs放入projectName_libs文件夹。我可以为导出的库更改(在eclipse中)文件夹名吗?

  • 我正在使用lwjgl制作一个游戏,并试图找出如何将其导出到一个可运行的jar或exe中。 我看到我可以使用jarplice使exe相当容易,所以我按照说明, 我从eclipse导出了一个jar(不是可运行的) 然后添加了那个罐子,游戏使用的所有罐子,以及它需要的当地人。 当我试图在jarplice中创建一个exe时,它说打开zip文件出错。 我非常确定,当eclipse制作一个jar时,它会将项目

  • 我试图在Node.js中掌握ES6导入的技巧,并尝试使用本示例中提供的语法: 我正在浏览支持表,但我无法找到支持新导入语句的版本(我试图寻找文本导入/要求)。我目前正在运行Node.js8.1.2,并且还相信,由于小抄引用的是. js文件,它应该与. js文件一起工作。 当我运行代码时(取自备忘单的第一个例子): 我得到的错误: 语法错误:意外的令牌导入。 对我尝试导入的库的引用: 我遗漏了什么?