JavaScript加载外部文件: ReferenceError: JOURNAL is not defined

标签 javascript node.js

我有一个 javascript 文件journal.js,其中包含以下内容:

require('./fixtures/journal-data');

if (typeof module != "undefined" && module.exports)
  module.exports = JOURNAL;

var hasEvent = function hasEvent(event, entry) {
  return entry.events.indexOf(event) != -1;
};

var tableFor = function tableFor(event, journal) {
  var table = [0, 0, 0, 0];
  for (var i = 0; i < journal.length; i++) {
    var entry = journal[i], index = 0;
    if (hasEvent(event, entry)) index += 1;
    if (entry.squirrel) index += 2;
    table[index] += 1;
  }
  return table;
};

console.log(tableFor("pizza", JOURNAL));

当我运行这个文件时,我得到:

ReferenceError: JOURNAL is not defined

在 Node 中,我可以看到外部 javascript 文件journal-data 已加载。

我在这里缺少什么?

编辑: 日志数据文件的内容是:

// journal-data.js
var JOURNAL = [
  {"events":["carrot","exercise","weekend"],"squirrel":false},
  {"events":["bread","pudding","brushed teeth","weekend","touched tree"],"squirrel":false}
];

最佳答案

您需要从文件中导出 JOURNAL var,如下所示。

exports.JOURNAL = [
  {"events": ['carrot', ...]}
]

这将允许您在当前状态下使用journal.js。

您也可以使用以下语法:

./fixtures/journal-data

module.exports = [ {"events": [...]} ];

./journal.js

var JOURNAL = require('./fixtures/journal-data');
....

关于JavaScript加载外部文件: ReferenceError: JOURNAL is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299887/

相关文章:

javascript - React添加/删除事件监听器

javascript - 在不在窗口中的 div 内水平使用 scrollto

node.js - 平均堆栈 : Refreshing or entering a direct URL lead to 'Cannot GET/' ?

javascript - 如何使用 ModalPopupExtender 在嵌套面板中触发 OnClick 事件?

javascript - ExtJS - 如何根据我输入的内容过滤数据库中的数据

javascript - Node.js socket.io 断开连接事件不会触发

javascript - 如何从 socket.io 发出的回调中获取回调,然后将其返回给父函数

javascript - 使用 await 在 try/catch block 中声明一个 const

javascript - Node JS Express 包含/导入/导出

php - 需要建议转换我的应用程序以允许实时更新