Met*_*kin 6 javascript require node.js
我一直在尝试解决node.js中其他js文件的包含问题.
我已经阅读了有关require函数和其他替代方法的所有内容,并决定使用require函数(因为代码只会在node.js上使用,而不是在浏览器中使用).
在我的代码中,我使用原型来创建一个'对象',我后来希望创建一个实例.
为了让它工作,我一直在编写如下代码(让我们称之为vehicle.js):
var util = require('util');
var EventEmitter = require('events').EventEmitter;
module.exports = Vehicle;
util.inherits(Vehicle, EventEmitter);
function Vehicle(options) {
EventEmitter.call(this);
options = options || {};
...
}
Vehicle.prototype._doStartEvent = function(data) {
this.emit('start', data);
};
Vehicle.prototype.testRun = function() {
this._doStartEvent();
};
Run Code Online (Sandbox Code Playgroud)
然后在我的主要js(让我们称之为server.js),我有以下内容:
var test = exports;
exports.Vehicle = require('./vehicle.js');
var remoteVehicle = new test.Vehicle({address: "192.168.1.3"});
remoteVehicle.on('start', function(d) {console.log('started');});
remoteVehicle.testRun();
Run Code Online (Sandbox Code Playgroud)
现在一切正常,但我对正在发生的事情并不了解.
我主要关注的是使用var test = exports;然后exports.Vehicle = require(...).
我尝试过做这样的事情var vehicle = require(...).Vehicle,并var vehicle = require(...)与只使用的目标new Vehicle或相似的,但我无法得到它的工作.
我被迫使用出口,如果是这样,为什么?
请注意我一直在使用AR Drone项目作为示例,上面的代码基于他们如何在内部完成他们的模块.请参阅Client.js和index.js.
结果require是对您的情况下函数的导出对象的引用.只需分配一个与类(或任何其他)同名的变量,并将其用作参数new
var Vehicle = require('./vehicle.js');
var remoteVehicle = new Vehicle({address: "192.168.1.3"});
remoteVehicle.on('start', function(d) {console.log('started');});
remoteVehicle.testRun();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4741 次 |
| 最近记录: |