我使用的是最新版本的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。
正如上面的评论所述,在文件/模块中声明或导入的变量不会在开发人员控制台上结束。
你可以做什么来获取控制台上的东西是使用require
导入控制台
> require('/imports/lib/todos/todos.js')
任何有效的绝对路径或包都可以在这里工作
注意:路径分隔符始终是* nix样式
/
尝试在Chrome控制台中评估来自Moment.js的moment
时,我遇到了类似的问题。它是由被调试的脚本/在断点下导入的,但在控制台中不起作用。控制台中的import
或require
Moment.js给了我错误,并没有为我工作。
我最终切换到Firefox Developer Edition,在那里我可以放置断点,然后在开箱即用的控制台中评估moment
而没有任何问题。