![](/img/trans.png)
[英]How can I access constants in the lib/constants.js file in Meteor?
[英]Meteor: Global constant not getting picked up from app/lib/_constants.js
我的应用程序目录结构为:
App
├── client
├── lib
│ ├── _constants.js
│ ├── config
│ └── router
├── modules
│ ├── answers
│ └── questions
├── node_modules
│ └── bcrypt
├── public
│ └── imgs
├── server
│ ├── lib
│ ├── roles
│ └── startup
└── settings-example.json
在_constants.js
,我定义了一些全局变量,例如Schemas = {}
,打算在modules > module_name> lib > collections.js
或modules > module_name> lib > methods.js
但是在模块的collections.js中找不到全局变量。 这是我得到的错误:
W20160323-21:38:58.977(-7)? (STDERR) ReferenceError: Schemas is not defined
W20160323-21:38:58.977(-7)? (STDERR) at modules/answers/lib/collections.js:22:1
W20160323-21:38:58.977(-7)? (STDERR) at modules/answers/lib/collections.js:89:1
据我了解, APP/lib/_constants.js
文件中的全局变量应该在加载更深的modules/module_name/lib/collections.js
APP/lib/_constants.js
之前加载,对吗?
但这显然没有发生。 我究竟做错了什么?
谢谢你的帮助!
阅读“ 构建应用程序 ”中的“文件加载顺序”部分:
有几个负载排序规则。 它们按以下优先级顺序应用于应用程序中所有适用的文件:
- HTML模板文件总是先加载
- 以main开头的文件。 最后加载
- 接下来将加载任何lib /目录中的文件
- 接下来加载路径更深的文件
- 然后按照整个路径的字母顺序加载文件
实现此方法的方式是,在嵌套lib
之前先加载嵌套较深的lib
,这可以说明您的问题。 以下是一些选项:
lib
。 例如,将路径重命名为modules/questions/stuff/collections.js
。 export
/ import
模块语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.