2012-08-28 19 views
9

私はJavascriptnode.jsにはかなり新しく、REST APIを作成しようとしていて、URLはフォームになります。node.jsを使用してURLからIdを取得する方法

  1. /user/{userId}/docs

私は/user/5/docsの場合に5される、{userId}の値を取得しようとしています。

これをリクエストパラメータ(GETまたはPOSTメソッドに応じてクエリ文字列または本文に渡します)に渡すことができますが、URLはこれが形成されるときに直感的に見えます。加えて、これらのような多くのURLがあります。

expressのようなノードモジュールがあるかどうか疑問に思っています。

私は伝統的なJavaのユーザーであり、Jerseyのフレームワークは、Javaにそのようなものを提供するために使用されています。

おかげで、 Tuco

+0

はい、Expressモジュールは、これを提供します。 – JohnnyHK

+0

こんにちはJohnny、例を挙げてください。 – Tuco

+0

ジョシュの答えを見てください。 – JohnnyHK

答えて

45

the documentationでいくつかの時間をお過ごしください。エクスプレスルートで変数を表すために:を使用:

app.get('/user/:id/docs', function(req, res) { 
    var id = req.params.id; 
}); 
1

は、サーバースクリプトで次のように書く:

var http = require('http'); 
var server = http.createServer(function (request, response) { 
    var url = request.url; //this will be /user/5/docs 
    url.id = url.split("/")[2]; // this will be 5 
    response.writeHead(200, {'Content-Type' : 'text/html'}); 
    response.end("Id is = " + url.id); 
}); 
server.listen(8000, '127.0.0.1'); 
+0

私は 'split( '/')'を実行したときにこれも気付きました。最初と最後のインデックスが空の文字列として配列されています...なぜですか? – denikov

0
var pathName = url.parse(request.url).pathname; 
var id = pathName.split("="); 
var userId = id[1]; 
関連する問題