Tôi nhận được lỗi "HttpHandlers không phải là hàm tạo" khi cố gắng tạo nhanh lớp đó bằng cách sử dụng "mới".Node.js <Class> không phải là hàm tạo
lớp được khởi tạo (../lib/restifyHandlers/HttpHandlers):
var config = require('config');
module.exports.config = config;
var util = require('util');
var _ = require('underscore');
var EventEmitter = require("events").EventEmitter;
var HttpHandlers = function(eventHandlers) {
var _self = this;
this.name = "HttpHandlers";
if (!(this instanceof HttpHandlers)) {
return new HttpHandlers(eventHandlers);
}
}
util.inherits(HttpHandlers, EventEmitter);
HttpHandlers.prototype.extractHttpHandlersRequest = function(req, res, next) {
var _self = this;
req.locals = {};
res.locals = {};
}
module.exports.HttpHandlers = HttpHandlers;
Mã thực hiện cuộc gọi:
var HttpHandlers = require('../lib/restifyHandlers/HttpHandlers');
var obj = new HttpHandlers(oneRouteConfig.eventHandlers);
stacktrace:
2016-09-10T23:44:41.571-04:00 - [31merror[39m: Sun, 11 Sep 2016 03:44:41 GMT Worker #master: exiting from error: TypeError: HttpHandlers is not a constructor
TypeError: HttpHandlers is not a constructor
at setupRestifyRoute (/usr/apps/das/src/myrepo/nodejs/myapp/lib/router.js:78:14)
at Router.setup_routes (/usr/apps/das/src/myrepo/nodejs/myapp/lib/router.js:40:3)
at /usr/apps/das/src/myrepo/nodejs/myapp/bin/server.js:222:14
at initialize (/usr/apps/das/src/myrepo/nodejs/myapp/bin/server.js:38:9)
at setup_server (/usr/apps/das/src/myrepo/nodejs/myapp/bin/server.js:107:4)
at /usr/apps/das/src/myrepo/nodejs/myapp/bin/server.js:275:4
at /usr/apps/das/src/myrepo/nodejs/myapp/node_modules/temp/lib/temp.js:231:7
at FSReqWrap.oncomplete (fs.js:123:15)
Không cần phải mới nó . 'HttpHandlers (oneRouteConfig.eventHandlers);' chỉ hoạt động tốt. – vijayst
@vijayst, tôi đã thử điều đó và lỗi tôi nhận được sau đó là "HttpHandlers không phải là một chức năng" – user994165
Tại sao bạn cần phải xem xét lại cấu hình trong dòng 2? Chỉ cần sử dụng 'module.exports = HttpHandlers' để xuất và bạn sẽ bị phạt – silkAdmin