node express后端在url中获取带有参数的路由

node express backend get route with params in url

我正在尝试为 URL 中带有 params 的 get 路由创建一个控制器,它应该如下所示: localhost:3001/service/26 。其中 26serviceID。我正在使用 knex 查询数据库。当我在 Postman 中访问上面的 link 时,我在终端中收到一条错误消息,指出 serviceID 列无效。我将附上路由、控制器和存储库:

router.get("/service/:serviceID", serviceController.getService)

const getService = async (req, res) => {
    try {
        const data = await serviceRepository.getService(req.params.serviceID);
        res.send(data);
      } catch (error) {
        throw error;
      }
}

getService = async (serviceParameters) => {
  const serviceID= serviceParameters.serviceID;
  return await knex("service").select().where("serviceID", serviceID)
}

getService() 中,您试图访问输入的 serviceID 属性,但您将 string 作为输入传递。像这样更改 getService() 函数:

getService = async (serviceParameters) => {
  const serviceID= serviceParameters;
  return await knex("service").select().where("serviceID", serviceID)
}