多个文件中的javascript构造函数出现问题

时间:2018-10-20 18:02:45

标签: javascript node.js

我正在尝试使用javascript制作和测试trie,并将节点,trie和测试拆分为单独的文件。我正在使用node.js在文件之间共享代码。我尝试弄乱导出并要求,但不断收到类型错误,指出导入不是构造函数。

在trienode.js中

MemoryError

在trie.js中

function trieNode(val, par) {
  this.value = val;
  this.children = {};
  this.isWord = false;
  this.freq = 0;
  this.parent = par;
}

trieNode.prototype.getValue = function() {
  return this.value;
}

module.exports.tn = trieNode();

在test.js中

var trieNode = require('./trienode.js').tn;

function Trie() {
  console.log('initialize trie');
  console.log(typeof trieNode);
  this.root = new trieNode(null);
  this.saved = {}
  this.current;
}

Trie.prototype.insert = function(word) {
}

Trie.prototype.findSuggestions = function(prefix) {
}
module.exports = Trie();

这是我遇到的错误

var Trie = require('./trie.js');
var trieNode = require('./trienode.js').tn;

var tr = new Trie();

tr.insert("boot");
tr.insert("boot");
tr.insert("boot");
tr.insert("book");
tr.insert("book");
tr.insert("boom");
var sug = tr.findSuggestions("boo");
for(s in sug) {
  console.log(s);
}

1 个答案:

答案 0 :(得分:2)

您正在导出函数的结果,而不是函数本身。

如果要在导入后调用函数,则只需导出函数:

module.exports.tn = trieNode;

module.exports = Trie;

然后,在导入它们之后,调用函数。