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とメソッドが配列routingTableで指定された時間だけ許可されるということです。したがって、私がプログラムを実行すると、コマンドプロンプトは2回の登録成功を表示します。しかし、 "/"と "GET"は1回だけ許可してください。
URLとメソッドを比較して一意にすることはできますか?
PS: "ラッパーは、" あなたはfilter
を必要とJSファイル "./MyApp.js"
感謝を!それを "some"と一緒に使うことは可能ですか?それとも、なぜ「何人か」とはうまくいかないのですか? – igodie
@igodieはい、もちろん、申し訳ありません。私は答えを変えた。 –