所以我有可用于国际化的节点模块.
我正在尝试获取在结节模块中运行我的节点模块的文件的当前路径.
用例#1:
内 ~/yourProject/node_modules/i18n.js
var current_path_to_locales_dir = path.join(__dirname, "locale");
Run Code Online (Sandbox Code Playgroud)
而服务器的路径是:
~/YourUserName/yourProject/app.js
Run Code Online (Sandbox Code Playgroud)
干 var i18n = require("i18n");
并试图获得它将返回的路径
/User/YourUserName/yourProject/node_modules/locale
Run Code Online (Sandbox Code Playgroud)
这是正确的,但我期待它寻找
/User/YourUserName/yourProject/locale
Run Code Online (Sandbox Code Playgroud)
用例#2:
内 ~/i18nProject/i18n.js
var current_path_to_locales_dir = path.join(__dirname, "locale");
Run Code Online (Sandbox Code Playgroud)
如果我有一个示例应用程序在~/i18nProject/sample做和var i18n = require("../i18n");
这次locale目录将是
/User/YourUserName/i18nProject/locale
Run Code Online (Sandbox Code Playgroud)
以上是正确的,但我希望它是正确的
/User/i18nProject/sample/locale/
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否有办法让我可以获得当前运行脚本的路径?
Nit*_*... 14
使用变量__filename,__ dirname将返回名为modules/scripts的名称和路径,请参见http://nodejs.org/docs/latest/api/globals.html#globals_filename
在您的情况下,您需要获取模块/脚本的调用者:
Node.js不会为您执行此操作,因此从技术上讲,您可能需要为模块添加额外的包装器和参数,并将其转换为接受此信息的函数.
但是,通过使用Error.prepareStackTrace可以实现getCaller这个线程已经有了解决方案:
| 归档时间: |
|
| 查看次数: |
38493 次 |
| 最近记录: |