我使用的是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.
答案 0 :(得分:1)
正如上面的评论所说,在文件/模块中声明或导入的变量不会在开发者控制台上结束。
您可以使用require
> require('/imports/lib/todos/todos.js')
任何有效的绝对路径或包都可以在这里使用
注意:路径分隔符始终为* nix样式
/
答案 1 :(得分:0)
在尝试从Chrome控制台的Moment.js中评估moment
时遇到了类似的问题。它是由正在调试/在断点下的脚本导入的,但是在控制台中不起作用。控制台中的import
或require
Moment.js给了我错误,但对我不起作用。
我最终转而使用Firefox开发人员版,在那里我可以设置断点,然后立即在其控制台中评估moment
,没有任何问题。