Expressを使用して、Node.jsに基づくサーバーで作業しています。
ユースケース: ユーザーは、次の URL で HTTP GET を実行することにより、サーバーから自分の個人的なコンテンツを取得できる必要があります。http://192.168.1.88:3000/content/[userID]
次のようなルートを定義しました。
app.get('/content/:userID', content.MyHandler);
「MyHandler」では、ユーザー IDを読み取り、適切なデータをユーザーに返すことができます。
問題は、「userID」にポンド記号 (#) が含まれている場合、MyHandler で # の前にあるものしか取得できないため、ユーザーが誰であるかを見つけることができないことです。
したがって、userIDが「123456」であれば問題ありません。しかし、userIDが「1234#567」の場合、MyHandler では「1234」しか得られません。
MyHandler は次のようになります。
exports.MyHandler = function(req, res){
...
var pathChunk = req.url.split("/");
// sys.puts("--> Path in chunks: " + sys.inspect(pathChunk));
// Nothing after # sign
var userID = pathChunk[2]; // Will be incomplete if contains #
};
シャープ (#) 記号に関係なく、MyHandler で完全なuserID値を取得する方法はありますか?