Node.js – 使用主/明细页面在Express中redirect

我正在学习Node.js 为了学习,我正在构build一个基本的应用程序。 目前,我正在尝试做一个主页/详细页面。 这是主页面。

/views/master.ejs

<html> <body> [items would go here] <a href="/new">add new</a> </body> </html> 

用户访问“/”时会看到这个页面。 当他们点击“添加新的”链接,我会把他们带到“/新”。 视图的代码在这里:

/views/detail.ejs

 <html> <body> <form id="myForm" method="post" action="/new"> <button type="submit">Submit</button> </form> </body> </html> 

我有这些成功的工作。 但是,当用户点击提交时,我不知道如何将它们redirect回“/”视图。 在这个时候,我的路由代码如下所示:

 var router = require('express').Router(); /* GET the master page. */ router.get('/', function(req, res) { res.render('master', { }); }); /* GET the new page */ router.get('/new', function(req, res) { res.render('detail', { }); }); /* POST new item */ router.post('/new', function(req, res) { console.log('creating item...'); // The following line just shows "undefined" in the browser" // I don't know if 1) Its correct or 2) If I should do it some other way res.redirect(200, '/', { }); }); 

我如何处理主详细页面场景中的加载视图?

谢谢!

你有没有尝试redirect而不传递视图模型? 例如:

 res.redirect('/projects/setup/website/details'); 

文档中没有示例显示正在传递的视图模型。

它看起来像你试图在POST中redirect。 如果您希望在POST请求之后呈现主页,则只需呈现预期的结果即可。

 /* POST new item */ router.post('/new', function(req, res) { // do server stuff ... res.render('master'); }); 

我认为使用下面的代码可能有帮助。

 router.post('/new', function(req, res) { console.log('creating item...'); res.redirect('/'); // if you don`t specify status defaults to 302 found }); 

看到这个链接: http : //expressjs.com/api.html#res.redirect