Estoy usando express nodejs para llegar a un punto final:
app.use("/number", numberRouter);Ahora tengo que manejar la URL en la que la ruta es diferente. Aquí tenemos tres caminos diferentes en la misma URL:
El archivo en el que se maneja el numberRouter:
numberRouter.post("/", async (req:Request, res:Response) => { var url = req.protocol + '://' + req.get('host') + req.originalUrl; //what I want to do if (req.path == "one") { //do something } else if (req.path == "two") { //do something } }); Lo que quiero lograr es que una vez que llegue al punto final del number , obtenga la URL completa, extraiga su path y, en función de la path , procese más en lugar de llegar a tres puntos finales diferentes ( /number/one , /number/two , /number/three ). es posible?
Estoy usando cartero para realizar pruebas y si envío una solicitud de publicación con la siguiente URL: localhost:8080/number/one la solicitud de publicación falla. Quiero algo como esto en el código:
numberRouter.post("/variablePath", async (req:Request, res:Response) => { ... } donde variablePath se establece a través del cartero ( one , two o three ) y luego se procesa aquí.
app.use("/number", numberRouter); numberRouter.post("/:pathNum", async (req:Request, res:Response) => { if (req.path === "/one") { //do something } else if (req.path === "/two") { //do something } }); La solicitud de publicación a través del cartero: localhost:8080/number/:pathNum . En cartero, establezca el valor de pathNum en la sección Params bajo el encabezado Path Variables .
usar parámetros de ruta
agregue su parámetro al enrutador, por ejemplo /:myparam , y luego verifíquelo y ejecute su código:
numberRouter.post("/:myparam", async (req:Request, res:Response) => { const myParam = req.params.myparam; //what I want to do if (myParam == "one") { //do something } else if (myParam == "two") { //do something } });