在节点模块中引用不可导出的文件

时间:2014-11-12 23:47:29

标签: javascript html node.js scope

我试图在“自包含”模块中引用html文档。该模块由两个文件组成:

app_root/node_module/my_module/main.js
app_root/node_module/my_module/header.html

main.js包含:

module.exports.test = function() {
   var doc = fs.readFileSync('./header.html');
   console.log(doc);
}

当我在app_root/program.js

中运行我的程序时
require('my_module').test();

当我启动我的应用时,当前工作目录设置为app_root。当它试图读取./header.html时,它会因路径不正确而中断。

如何在不知道运行它的内容的情况下找到已安装模块的目录?

1 个答案:

答案 0 :(得分:0)

您可以使用__dirname来引用当前脚本的路径。

所以main.js会变成:

module.exports.test = function() {
  var doc = fs.readFileSync(__dirname + '/header.html');
  console.log(doc);
}