有些请求在邮递员上有效,而另一些则无效

问题描述 投票:0回答:1

我是一个非常新的极客,正在尝试使用 NodeJs 和 ExpressJs 构建应用程序。我正在用邮递员测试后端。有些请求工作完美,但其他请求则不然,我一直收到无法获取 url 消息,404 现在几个小时都找不到,正如我提到的其他路线工作得很好。

服务器端一切似乎都正常,类型内容是JSON,我检查了多次代码,但看不到错误。有什么想法吗?谢谢🙏。

服务器: the server 邮递员回复: Postman response

型号:

module.exports = (_db) => {
  db = _db;
  return SearchModel;
};
class SearchModel {
  //Get a product by name
  static getProductByName(productName) {
    return db
      .query('SELECT * FROM Products WHERE productName = ?', [
        productName,
      ])
      .then((res) => {
        console.log(res);
        return res;
      })
      .catch((error) => {
        console.log(error);
        return error;
      });
  }
  // Get products by gender
  static getProductByGender(gender) {
    return db
      .query('SELECT * FROM Products WHERE gender = ?', [gender])
      .then((res) => {
        return res;
      })
      .catch((error) => {
        return error;
      });
  }
  // Get products by brand
  static getProductByBrand(brand) {
    return db
      .query('SELECT * FROM Products WHERE brand=?', [brand])
      .then((res) => {
        return res;
      })
      .catch((error) => {
        return error;
      });
  }
  // Get products by mouvement
  static getProductByMouvement(mouvement) {
    return db
      .query('SELECT * FROM Products WHERE mouvement=?', [mouvement])
      .then((res) => {
        return res;
      })
      .catch((error) => {
        return error;
      });
  }
}

路线:

  // Get a product by name
  module.exports = (app, db) => {
  const searchModel = require('../models/SearchModel')(db);

  // Route pour afficher un produit par son nom
  app.get('/api/v1/Search/name', async (req, res) => {
    const productByName = await searchModel.getProductByName(
      req.body.productName,
    );

    if (productByName.code) {
      res.json({ status: 500, msg: 'Server Error!' });
    } else if (!productByName) {
      res.json({ status: 404, msg: 'Product not found!' });
    } else {
      res.json({ status: 200, result: productByName, msg: 'Voilà!' });
    }
  });
};
javascript node.js express postman
1个回答
0
投票

您确定 GET 请求参数位于

body
中吗?

这才是正确的做法:

app.get('/path', (req, res) => {
  const queryParam1 = req.query.productName;

  // Do something with the query parameters
  console.log(queryParam1, queryParam2);
  
  res.send('Query parameters received');
});

由于未找到产品,因此您返回

404
,这意味着就 PostMan 显示而言未找到页面。

© www.soinside.com 2019 - 2024. All rights reserved.