私はNode.jsとExpressを初めて使用し、RESTful APIプロジェクトに取り組んでおり、URLに複数のパラメーターを含むGETリクエストを送信しようとしています。
これが私のルートです:
/centers/:longitude/:latitude
これが私がそれを呼ぼうとした方法です:
/centers?logitude=23.08&latitude=12.12
そして私も試しました
/centers/23.08/12.12
それはこのルートに行くことになります:
/centers/
それで、エンドポイントを書く私の方法は間違っていますか?または私がそれを要求している方法?
Expressでルート定義がどのように機能するかを正しく理解していません。
次のようなルート定義:
/centers/:longitude/:latitude
これは、次のようなURLを期待していることを意味します。
/centers/23.08/12.12
このようなURLを作成すると:
/centers?longitude=23.08&latitude=12.12
クエリパラメータを使用しています(param=value
の後に?
ペア)。これらにアクセスするには、次の質問/回答を参照してください。 Expressの「?」の後のGETパラメーターにアクセスする方法
そのためには、"/centers"
のルートを作成してから、req.query.longitude
とreq.query.latitude
にアクセスして、これらの特定のクエリパラメータにアクセスします。
このようにしてみてください
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
app.get('/centers/:log/:lat',function(req,res)
{
res.json({ log: req.params.log,
lat: req.params.lat });
});
app.listen(port);
console.log('Server started! At http://localhost:' + port);
次のようなURLを試してください http:// localhost:8080/centers/55/55
ルーターでURLパラメータを定義する方が簡単です。
routers.jsで
router.get('/api/users/:id&:pending', function (req, res) {
console.log(req.params.id);
console.log(req.params.pending);
});