Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有辅助文件的节点模块导致';找不到模块';安装时出错_Javascript_Node.js_Npm - Fatal编程技术网

Javascript 带有辅助文件的节点模块导致';找不到模块';安装时出错

Javascript 带有辅助文件的节点模块导致';找不到模块';安装时出错,javascript,node.js,npm,Javascript,Node.js,Npm,提前道歉,我确信在一条明显的线索中有一个简单的答案,我只是没能找到它/理解它 给定在全局node_modules/Jimmy/index.js文件中实现的node.js模块Jimmy;我将一些“helper”函数放在一个单独的helper.js文件中,都在同一个目录中。当我从同一个目录运行示例程序require时效果很好,但从其他任何地方运行该示例程序时,它无法加载支持的Helper.js文件: Error: Cannot find module 'Helper' 有人能给我解释一下为

提前道歉,我确信在一条明显的线索中有一个简单的答案,我只是没能找到它/理解它

给定在全局
node_modules/Jimmy/index.js
文件中实现的node.js模块
Jimmy
;我将一些“helper”函数放在一个单独的
helper.js
文件中,都在同一个目录中。当我从同一个目录运行示例程序
require
时效果很好,但从其他任何地方运行该示例程序时,它无法加载支持的Helper.js文件:

    Error: Cannot find module 'Helper'
有人能给我解释一下为什么这不起作用,以及我应该怎么做才能让它起作用吗

编辑:将其简化为演示问题。包括招摇过市的客户端依赖性,以防万一

节点模块在目录
~/Jimmy
中称为Jimmy

~/Jimmy/index.js
中定义的模块类:

var Swagger = require('swagger-client');
var Helper  = require('Helper');
function Jimmy (host, username, password) {
    this._host = host;
    this._hdr = {
        'Authorization': 'Basic ' + new     Buffer(username+':'+password).toString('base64') ,
        'Content-Type': 'application/json'
    };
}
Jimmy.prototype.getEntity = function(entity) {
    return Helper.get(this._host, this._hdr, entity);
}
module.exports =
{
    Jimmy: Jimmy
};
var Swagger = require('swagger-client');
function get(host, hdr, entity) {
    var url = 'http://'+host+'/config/' + entity;
    var request = {
        url    : url,
        headers: hdr
    };
    return Swagger.http(request)
        .then( (res) => { return res.body; });
}
module.exports =
{
    get : get
};
var jimmy = require('Jimmy');
var j = new jimmy.Jimmy('192.168.56.151:8080', 'admin', 'admin');
j.getEntity('joey')
    .then( (e) => {
        console.log(JSON.stringify(e, null, 2));
    })
    .catch( (err) => { console.log('ERR: ' + err); });
~/Jimmy/helper.js
中定义的模块帮助器函数:

var Swagger = require('swagger-client');
var Helper  = require('Helper');
function Jimmy (host, username, password) {
    this._host = host;
    this._hdr = {
        'Authorization': 'Basic ' + new     Buffer(username+':'+password).toString('base64') ,
        'Content-Type': 'application/json'
    };
}
Jimmy.prototype.getEntity = function(entity) {
    return Helper.get(this._host, this._hdr, entity);
}
module.exports =
{
    Jimmy: Jimmy
};
var Swagger = require('swagger-client');
function get(host, hdr, entity) {
    var url = 'http://'+host+'/config/' + entity;
    var request = {
        url    : url,
        headers: hdr
    };
    return Swagger.http(request)
        .then( (res) => { return res.body; });
}
module.exports =
{
    get : get
};
var jimmy = require('Jimmy');
var j = new jimmy.Jimmy('192.168.56.151:8080', 'admin', 'admin');
j.getEntity('joey')
    .then( (e) => {
        console.log(JSON.stringify(e, null, 2));
    })
    .catch( (err) => { console.log('ERR: ' + err); });
以及
~/test.js
中的样本测试:

var Swagger = require('swagger-client');
var Helper  = require('Helper');
function Jimmy (host, username, password) {
    this._host = host;
    this._hdr = {
        'Authorization': 'Basic ' + new     Buffer(username+':'+password).toString('base64') ,
        'Content-Type': 'application/json'
    };
}
Jimmy.prototype.getEntity = function(entity) {
    return Helper.get(this._host, this._hdr, entity);
}
module.exports =
{
    Jimmy: Jimmy
};
var Swagger = require('swagger-client');
function get(host, hdr, entity) {
    var url = 'http://'+host+'/config/' + entity;
    var request = {
        url    : url,
        headers: hdr
    };
    return Swagger.http(request)
        .then( (res) => { return res.body; });
}
module.exports =
{
    get : get
};
var jimmy = require('Jimmy');
var j = new jimmy.Jimmy('192.168.56.151:8080', 'admin', 'admin');
j.getEntity('joey')
    .then( (e) => {
        console.log(JSON.stringify(e, null, 2));
    })
    .catch( (err) => { console.log('ERR: ' + err); });

对不起,发现了我的错误;如果有其他人这样做,对于模块中的本地文件,我通过相对路径名引用了它

因此,在我的例子中,从模块的
index.js
中,我只想要本地版本的
Helper.js
,我想要:

var Helper  = require('./Helper'); // works
而不是:

var Helper  = require('Helper'); // 'not found' error

你能发布你的代码让我们看看你试过什么吗?