Bagaimana cara menangani rute yang memiliki parameter, dan jika klien gagal memasukkannya, jangan biarkan server error.

router.get('/:id', function(req, res, next) {
  let profileID = req.params.id
  if (profileID) {
    res.send('ID provided');
  } else {
    res.send('No id provided');
  }
});

Jika parameter ID disediakan, saya ingin menggunakannya di suatu tempat. Tetapi jika tidak ada, saya ingin ada perilaku default untuk kembali ke (mis. Rute ke halaman lain, beberapa pesan, dll)

Perilaku yang diharapkan adalah:

http://example.com/ merutekan ke laman landas

Tetapi jika ID tambahan disediakan

http://example.com/abc123 merutekan ke profil tertentu

0
Ari 23 Mei 2020, 13:35

1 menjawab

Jawaban Terbaik

Anda dapat menentukan router.get('/:id?') dan kemudian id akan ditandai sebagai param opsional.

Contoh CodeSandbox

Contoh Server Ekspres

// the question mark marks the parameter as optional
app.get("/:id?", (req, res) => {

  // will create an id entry even if none is provided
  console.log(req.params);

  // if there is an id do something else 
  if (req.params.id) return res.send(req.params.id);

  // if there is no id default behaviour for '/' route
  res.sendFile(__dirname + "/view/hello.html");
});
1
Community 20 Juni 2020, 09:12