使用ES5语法,如何创建子模块?为什么以下不起作用?
// City.js
var City = function(){}
module.exports = City;
// API.js
var City = require('./City');
var API = function(){
...
}
API.prototype.City = City;
module.exports = API;
// app.js
var API = require('./API');
var api = new API();
var Orlando = new api.City(); // <--- why doesn't this work?
所以我有一个API模块,子/模块“City”。当使用我的API库(实际上除了“City”之外还有更多的子模块)时,我不希望用户require()
中的每个小子模块都有app.js
。我希望API模块为他们做到这一点,以便他们需要做的就是实例化它。
我该怎么做呢?我见过其他类型的库这样做,但我不确定如何。 AWS就是一个很好的例子:
http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html
他们需要AWS对象,然后实例化AWS.S3
模块。他们没有require('S3')
或类似的东西。
图书馆如何做到这一点?