我有一个看起来像这样的目录:
-- app/
|- models/
|- user.js
|- config.json
我要我的user.js
文件要求config.json
。目前,我正在使用,require('/config')
但这不起作用。我究竟做错了什么?我想避免使用require('../config')
。
简单的答案是您没有做错任何事情。根据一些研究,require函数将查找以下内容之一:
参见:http : //www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm和:http : //nodejs.org/api/modules。 html#loading_from_node_modules_Folders
上面的两个资源都引用了还可以修改NODE_PATH环境变量的功能,但是,这听起来似乎是很糟糕的做法,并且至少会使代码的可移植性降低。对于config.json这样的文件,它甚至也可能无法工作,因为尽管我从未做过,但我想更改NODE_PATH变量只会更改require()查找与真实模块相对应的package.json文件的位置。
总结,请参阅:如何使node.js中的require始终相对于项目的根文件夹?如上文Piotr Kowalczuk所述。根据该帖子,您有两个实际选择:
最后,请记住,您试图做的事情与您正在使用的程序的原则背道而驰。我认为这是一种情况,您可以通过使用Node的粒度并按设计意图使用相对文件路径来最终使您的生活(和合作者的生活)更加轻松。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句