Узел express запрос идет к другой конечной точке в маршрутизаторе - PullRequest
0 голосов
/ 25 апреля 2020

Я не могу понять это. Почему это мой запрос:

localhost:3000/api/customers/search?q=glenn

Идет:

  // Retrieve a single Customer with customerId
  router.get("/:customerId", customers.findOne);

, когда он должен go сюда ???

// Search for a customer.
  router.get("/search/:q", customers.search)

customer.routes. js

module.exports = app => {
  const customers = require("../controllers/customer.controller");

  const router = require("express").Router();

  // Create a new Customer
  router.post("/", customers.create);

  // Retrieve all Customers
  router.get("/", customers.findAll);

  // Search for a customer.
  router.get("/search/:q", customers.search)

  // Retrieve a single Customer with customerId
  router.get("/:customerId", customers.findOne);

  // Update a Customer with customerId
  router.put("/:customerId", customers.update);

  // Delete a Customer with customerId
  router.delete("/:customerId", customers.delete);

  // Create a new Customer
  router.delete("/", customers.deleteAll);

  app.use("/api/customers", router)
};

Журналы Morgan + Sequelize:

Выполнение (по умолчанию): SELECT id, email, name, active, createdAt, updatedAt ОТ customers КАК customer ГДЕ customer. id = 'search'; :: 1 - - [25 / Apr / 2020: 16: 41: 06 +0000] "GET / api / Customers / search? Q = glenn HTTP / 1.1" 200 0 "-" "PostmanRuntime / 7.24.1"

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

вам нужен другой маршрут для обработки, поиск без "/:r".

/search/:q работает только для запроса типа

  • /search/test
  • /search/something

Не

  • /search?q=something

Обновление:

// Search for a customer.
  router.get("/search/:q", customers.search)

// Add this
// Search for a for query.
  router.get("/search", customers.search)
1 голос
/ 25 апреля 2020

Ваш запрос не соответствует тому, что ищет маршрутизатор, либо измените ваш запрос с localhost:3000/api/customers/search?q=glenn на localhost:3000/api/customers/search/glenn

ИЛИ

измените router.get("/search/:q", customers.search) на router.get("/search", customers.search)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...