Tôi đã cố gắng sắp xếp bao gồm các tệp js khác trong node.js.Nút js và mới khi sử dụng yêu cầu
Tôi đã đọc tất cả về chức năng yêu cầu và các lựa chọn thay thế khác và quyết định sử dụng hàm require (vì mã sẽ chỉ được sử dụng trên node.js, không phải trong trình duyệt).
Trong mã của tôi, tôi đang sử dụng các nguyên mẫu để tạo ra một 'đối tượng' mà sau này tôi muốn tạo một thể hiện.
Để có được nó để làm việc tôi đã viết code như sau (cho phép gọi nó là 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();
};
Sau đó, trong js chính của tôi (cho phép gọi nó là server.js), tôi có như sau:
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();
Bây giờ tất cả đều hoạt động tốt, nhưng tôi không hiểu rõ những gì đang diễn ra.
Mối quan tâm chính của tôi là sử dụng var test = exports;
và sau đó exports.Vehicle = require(...)
.
Tôi đã thử thực hiện một cái gì đó như var vehicle = require(...).Vehicle
và var vehicle = require(...)
, với mục tiêu chỉ sử dụng new Vehicle
hoặc tương tự, nhưng tôi không thể làm cho nó hoạt động.
Tôi có bị buộc phải sử dụng hàng xuất khẩu không và nếu có thì tại sao?
Xin lưu ý rằng tôi đã sử dụng dự án AR Drone làm ví dụ, mã trên được dựa trên cách họ đã thực hiện mô-đun của họ trong nội bộ. Tham khảo Client.js và index.js.
này Mastering Node eBook tốt: http://visionmedia.github.com/masteringnode/book. html – Alex
@LeonidBeschastny Làm thế nào điều này là một bản sao? Câu hỏi này được hỏi trước (điều này đã được hỏi vào ngày 3 tháng 1 năm 2013, câu hỏi mà bạn cho rằng đó là bản sao của câu hỏi được yêu cầu vào ngày 11 tháng 7 năm 2013). Nếu bạn cho rằng chúng trùng lặp thì câu hỏi khác là bản sao chứ không phải câu hỏi này. – Metalskin
@Metalskin xin lỗi, tôi đã nhầm lẫn với tiêu đề. Tôi tái đỏ câu hỏi của bạn cẩn thận hơn, và tôi nghĩ rằng tôi đã nhầm lẫn về nó là một bản sao. –