Обработка нескольких параметров по одному и тому же пути

#node.js #api #express

Вопрос:

Я создаю API с node и express, который может шифровать и расшифровывать сообщения с помощью обычных шифров. В моем API стандартный путь «формат» — это /lt;шифрование/расшифровкаgt;/lt;шифрование/расшифровкаgt;lt;ключиgt;. В настоящее время я не уверен, как лучше всего использовать несколько «ключевых значений», поскольку некоторые шифры могут принимать более одного значения ключа для шифрования.

 const express = require("express"); const app = express(); const port = 3000;  const checkInput = require("./input_validator");  //import affine cipher utilities const [affine, reverseAffine, affineKeyValidator] = require("./ciphers/affine");  app.get("/affine/encrypt/:string/:key", (req, res) =gt; {  if (checkInput(req.params.string)) {  let key = JSON.parse("["   req.params.key   "]");  if (affineKeyValidator(key[0])) {  res.send({ text: affine(req.params.string, key[0], key[1]) });  }  } });  app.listen(port, () =gt; {  console.log(`Server running on http://localhost:${port}`); });  

выше приведена моя текущая реализация. Примером пути может быть /аффинный/шифрование/hiddenmessage/1,25, который технически работает нормально, но я чувствую, что это не лучший способ реализовать то, что я ищу. Есть ли более эффективный способ для этого?

Комментарии:

1. Почему бы не создать POST маршрут со всеми ключами в теле запроса?

Ответ №1:

Значения для этого формата могут быть отправлены QueryParams . Вы используете обычный express.js таким образом, когда вы отправляете данные с интерфейса/клиента, вы можете добавить эти данные в параметры HTTP-запроса, а затем их можно получить с помощью:

 const query = req.query;// query = {key:"abc", value: "123"}