无法在Google Chrome控制台

时间:2017-07-29 16:55:10

标签: javascript meteor meteor-blaze

我使用的是Meteor js的最新版本。我是新手,无法找到解决方案。我经常为这个问题上网冲浪。

在讨论问题之前,请先查看目录结构。

项目的目录结构如下:

\client
    \main.html
    \main.css
    \main.js
\imports
    \lib
       \todos
           \todos.js
\server
    \main.js

我在Mongo Object中创建了todos.js

export const Todos = new Mongo.Collections('todos');

这很好。

现在在client\main.js,我正在导入此对象,

import { Todos } from '\imports\lib\todos\todos.js';

  

注意:我尝试了相对和绝对两种类型的寻址。

之后我放了debugger并检查了变量就在那里。我可以在控制台上访问该变量。但是一旦我传递了该语句并且所有代码都在浏览器上呈现(谷歌浏览器),我就无法使用Todos。它给了我一个 ReferenceError 。错误是

  

Todos未定义。

我知道在浏览器加载之前没有问题因为我检查过了。我冲浪了很多次。请帮我。

提前谢谢。

编辑1:如果有必要,我正在使用Windows 7.

2 个答案:

答案 0 :(得分:1)

正如上面的评论所说,在文件/模块中声明或导入的变量不会在开发者控制台上结束。

您可以使用require

将其导入控制台
> require('/imports/lib/todos/todos.js')

任何有效的绝对路径或包都可以在这里使用

  

注意:路径分隔符始终为* nix样式/

答案 1 :(得分:0)

在尝试从Chrome控制台的Moment.js中评估moment时遇到了类似的问题。它是由正在调试/在断点下的脚本导入的,但是在控制台中不起作用。控制台中的importrequire Moment.js给了我错误,但对我不起作用。

我最终转而使用Firefox开发人员版,在那里我可以设置断点,然后立即在其控制台中评估moment,没有任何问题。