![](/img/trans.png)
[英]NodeJS routing is relative or root-relative depending on user agent
[英]Require a file in NodeJS using a canonical or root-relative path
我有一個虛構的實用程序包(節點模塊),我將其導入到我的應用程序中,如下所示:
var sqrt = require('common-math').sqrt
但是,在common-math
模塊中使用同一模塊似乎很棘手。 我似乎只需要選擇,兩者都不理想:
require('../sqrt')
或require('../../../lib/sqrt')
。 node_modules/sqrt/index.js
,然后執行require('sqrt')
。 我只希望能夠像這個包的所有使用者一樣require('common-math').sqrt
。 我意識到我可以使用指向我包的index.js
的符號鏈接創建一個node_modules/common-math
文件夾,但這是常見/推薦的做法嗎?
Node的模塊加載系統非常有限,但是您想要的是可能的。 但是,它並不像您期望的那樣優雅:
var root = (function (p, path) {
for (; 'common-math' !== path.basename(p); p = path.dirname(p));
return p;
}(module.filename, require('path'));
var a = require(root + '/sqrt.js');
甚至:
var root = (function (p) {
return p.slice(0, p.indexOf('common-math') + 1).join('/');
}(module.filename.split('/')));
var a = require(root + '/sqrt.js');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.