我是一个非常新的极客,正在尝试使用 NodeJs 和 ExpressJs 构建应用程序。我正在用邮递员测试后端。有些请求工作完美,但其他请求则不然,我一直收到无法获取 url 消息,404 现在几个小时都找不到,正如我提到的其他路线工作得很好。
服务器端一切似乎都正常,类型内容是JSON,我检查了多次代码,但看不到错误。有什么想法吗?谢谢🙏。
服务器: 邮递员回复:
型号:
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à!' });
}
});
};
您确定 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 显示而言未找到页面。