1
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和方法。所以當我執行程序時,Command Promp會打印兩次註冊成功。但是「/」和「GET」應該只允許一次。
如何比較URL和方法以使它們可以是唯一的?
PS:在 「包裝」 是在JS文件 「./MyApp.js」
謝謝!但有可能與「一些」使用它?或者爲什麼它不適用於「某些」? – igodie
@igodie是的,當然,我很抱歉。我改變了答案。 –