Javascript Node JS:如何在另一条路由中打开一条路由

Javascript Node JS:如何在另一条路由中打开一条路由,javascript,node.js,web,web-frontend,Javascript,Node.js,Web,Web Frontend,我是网络前端领域的新手。我有路线:/product,/shop。对于每条路线,我都创建了控制器。问题是如何从/product页面打开/shop路线页面。当我调用res.render('product')它路由http://localhost:3000/shop/products而不是http://localhost:3000/products 如何解决此问题?您将被重定向到http://localhost:3000/shop/products因为执行请求之前的当前路径是:http://local

我是网络前端领域的新手。我有路线:
/product
/shop
。对于每条路线,我都创建了控制器。问题是如何从
/product
页面打开
/shop
路线页面。当我调用res.render('product')它路由
http://localhost:3000/shop/products
而不是
http://localhost:3000/products


如何解决此问题?

您将被重定向到
http://localhost:3000/shop/products
因为执行请求之前的当前路径是:
http://localhost:3000/shop
要直接使用
/products
,您可以执行以下操作

  • 您可以使用
    调用文件系统中的父级(使用相对路径)
res.render(“../products”)
  • 或者简单地使用绝对路径
res.render(“/products”)
使用

重定向

在您的路线中,快速重定向

例如:

app.get('/shop', function(req, res) {
 res.redirect('/products');
});

注意:打开/product from/shop您可以编辑您的问题而不是评论如果您调用
res.render('/product')
Nothing,但请求到达控制器会发生什么情况。
router.get('/',function(req,res,next){console.log(“test”);res.render(../shop”);})带重定向:它写入“未找到”,带呈现:在视图目录/Users/developer/Desktop/dilenta/views“GET/product 500 3.356 ms-1352中查找视图“shop product render”失败。请确保您有一个与页面相关联的文件
localhost:3000/products
?在我的店铺页面中有产品。当我用ajax单击其中一个时,我会将请求发送给我的/产品控制器。在/product controller中,我编写了这样的代码:res.render(“商店产品渲染”);在我的视图文件夹中,我有“shop-product-render.ejs allow.edkeveked,thanx很多,我找到了我的miss!res.render(“../products”)工作正常,但我理解不正确。我认为它指向其他路径,但它只返回html代码作为响应。我使用ajax将请求发送给控制器,作为响应接收html内容。愚蠢的我)Thanx又很多了。