var e = require("./myApp.js");
var myServer = e.CreateServer(1337);
myServer.Register("/", "GET", function (req, res) { res.end("J") });
myServer.Register("/", "GET", function (req, res) { res.end("Ja") });
myServer.Start();
Это мой "обертка":Сравнение 2 атрибутов с помощью функции "некоторые"
module.exports = (function() {
function _createServer(port) {
var routingTable = [];
var port = port;
var server = require('http').createServer();
function _start() {
server.listen(port);
console.log("Server was started");
};
function RegisterRecord(url, method, fnc) {
this.url = url;
this.method = method;
this.fnc = fnc;
};
function _register(newUrl, newMethod, newFnc) {
if (_checkInput(newUrl, newMethod))
console.log("Register failed! Record with same URL and Method already exist");
else {
routingTable.push(new RegisterRecord(newUrl, newMethod, newFnc));
console.log("Register success!");
}
};
function _checkInput(newUrl, newMethod) {
return routingTable.some(function fnc(record) { record.url == newUrl && record.method == newMethod });
};
return {
Start: _start,
Register: _register,
ShutDown: _shutDown
};
};
return { CreateServer: _createServer };
})();
Так что наиболее важные функции "_register" и "checkInput".
Моя цель состоит в том, что один и тот же URL-адрес и метод разрешены только во времени в массиве routingTable. Поэтому, когда я запускаю программу, Command Promp печатает два раза. Но «/» и «GET» должны быть разрешены только один раз.
Как сравнить URL и метод, чтобы они были уникальными?
PS: "обертка" находится в JS-файлов "./MyApp.js"
Спасибо! но можно ли использовать его с «некоторыми»? Или почему это не работает с «некоторыми»? – igodie
@igodie Да, конечно, извините. Я изменил ответ. –