Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 - Fatal编程技术网

Javascript 如何将节点模块拆分为其他文件?

Javascript 如何将节点模块拆分为其他文件?,javascript,node.js,Javascript,Node.js,我正试图将我的节点模块函数拆分为其他文件,因为我希望添加许多函数 我想将主文件的函数调用到从lib加载的文件中,并能够直接调用lib函数,请参见: 在我的主文件index.js中: function Api(opt) { // set options } Api.prototype.get = function (endpoint) { return this.request('GET', endpoint, null); }; Api.prototype.Catalog = req

我正试图将我的节点模块函数拆分为其他文件,因为我希望添加许多函数

我想将主文件的函数调用到从lib加载的文件中,并能够直接调用lib函数,请参见:

在我的主文件
index.js
中:

function Api(opt) {
  // set options
}

Api.prototype.get = function (endpoint) {
  return this.request('GET', endpoint, null);
};

Api.prototype.Catalog = require('./lib/catalog.js');

module.exports = Api;
然后在
lib/catalog.js中

function Catalog () {};

Catalog.prototype.getCategories = function () {
    return Api.get('categories');
}

module.exports = Catalog;
然后,我希望在需要模块时实现以下功能,因此目录文件将允许访问:

var Module = require('module');

api = new Module({
    url: 'http://example.com', // without trailing slash
    username: 'username',
    password: 'password'
});

api.Catalog.getCategories();
这样做时,我会得到以下错误:

TypeError: Cannot read property 'getCategories' of undefined

有没有推荐的方法来实现这一点,或者将其拆分为多个节点模块?

尝试为新模块添加require

var Module = require('module');
var Catalog = require('Catalog');
var Api = require('Api');

api = new Module({
    url: 'http://example.com', // without trailing slash
    username: 'username',
    password: 'password'
});

api.Catalog.getCategories();

尝试为新模块添加require

var Module = require('module');
var Catalog = require('Catalog');
var Api = require('Api');

api = new Module({
    url: 'http://example.com', // without trailing slash
    username: 'username',
    password: 'password'
});

api.Catalog.getCategories();

在进行调用之前,您需要为它们添加一个可用的require。在进行调用之前,您需要为它们添加一个可用的require。但是,这不会从lib加载它们,它们需要拆分为单独的模块,用于Api和Catalog?
var模块=require('Module')
旨在显示加载Api函数所需的
index.js
文件的加载,在您的示例中,它被拆分了?但这不会从lib加载它们,它们需要拆分为单独的模块,用于Api和Catalog?
var模块=require('Module')
旨在显示加载
index.js
文件以加载Api函数,在您的示例中,它被拆分了吗?