节点获取需要的父文件的path
我正在编写一个节点模块,需要在与需要我的模块的文件相同的目录中读取一个文件。
例如,我有app.js
和相同的文件夹template.html
。 在一些未知的目录中是module.js
和app.js
需要它。
我怎样才能从module.js
读取template.html
?
在你的文件中你将有一个全局模块(实际上不是全局的),你可以使用module.parent
获取父对象,使用module.parent
获取文件名,然后你可以提取文件夹
所以从你的module.js你可以使用module.parent.filename.
http://nodejs.org/api/modules.html
p = require('path') template = p.join(p.dirname(module.parent.filename),'template.html')
如果你正在寻找被执行的文件的path,那么你可以使用require.main.filename
看看这里: http : //nodejs.org/docs/latest/api/globals.html#globals_dirname
你可以在app.js
做这个:
var path = __dirname + '/template.html';
然后,您可以通过一些函数或API将此path发送到您的module.js
。
那么你的模块可以使用这个path。
在“module.js”中,诀窍是使用module.parent。 文件名
我个人不喜欢使用全局variables,对于某些文件(如configuration或模板),pipe理模块要求栈并不那么困难。
module.parent映射到父需求模块(可能是app.js,如你的例子)。
将module.parent.filename与path模块结合起来可以获得一些有用的东西,例如:
var path = require('path'); var parent_path = path.dirname(module.parent.filename); var parent_relative = path.resolve(path.join(parent_path, '../', 'view')); var template = path.join(parent_path,'./views/template.html');
我不喜欢用全局的东西来处理path,我得到了spagetti ../../../dir./s
- 如何使用plot.ly将新数据添加到现有graphics
- loopbackjs:将模型附加到不同的数据源
- React主页属性不起作用
- 我如何添加一个实例方法到sails.js中的所有模型?
- 使用正则expression式find并获得特定的单词
- 无法findpackage.json。 Node.js可能有问题开始。 validationpackage.json是否有效,或将代码放在名为server.js或app.js的文件中
- 续集NodeJS:是否支持这些function?
- 使用服务器作为CalDAV客户端来同步日历数据和问题
- 如何模仿一个irc服务器断开连接来testing我的nodejs irc bot?