【发布时间】:2022-02-08 17:39:59
【问题描述】:
我希望你能帮助我,我有这些路由,当向他们的路由发出请求时,会返回请求的先前值,如果我再次发出请求,它只会显示我请求的数据。
import { BaseProduct, Product } from "./product.interface";
import { Products } from "./products.interface"
import { db } from "../db"
/**
* query Store
*/
let products: Products
/**
* Service Methods
*/
export const findAll = async (): Promise<Product[]> => {
db.query('SELECT * FROM bsale_test.product;',(err,results)=>{
products=Object.values(results)
})
return Object.values(products)
};
export const find = async (id: number): Promise<Product> => {
db.query(`SELECT * FROM bsale_test.product where id=${id};`,(err,result)=>{
products=Object.values(result)
})
return products[0]
};
因为当您提出请求时 获取 http://localhost:3000/api/products/109 它会显示上一个请求的数据,如果我再次发出请求,它只会显示请求的数据。
{
"id": 108,
"name": "PISCO",
"url_image": "https://dojiw2m9tvv09.cloudfront.net/11132/product/alto8532.jpg",
"price": 790,
"discount": 10,
"category": 2
}
接下来会是什么
{
"id": 109,
"name": "PISCO ",
"url_image": "https://dojiw2m9tvv09.cloudfront.net/11132/product/alto408581.jpg",
"price": 5990,
"discount": 0,
"category": 2
}
我的路线
// GET products
productsRouter.get("/", async (req: Request, res: Response) => {
try {
const products: Product[] = await productService.findAll();
res.status(200).send(products);
} catch (e:any) {
res.status(500).send(e.message);
}
});
// GET products/:id
productsRouter.get("/:id", async (req: Request, res: Response) => {
const id: number = parseInt(req.params.id, 10);
try {
const product: Product = await productService.find(id);
if (product) {
console.log(product)
return res.status(200).send(product);
}
res.status(404).send("product not found");
} catch (e:any) {
res.status(500).send(e.message);
}
});
【问题讨论】:
标签: node.js typescript