基本特快路线
Posted
技术标签:
【中文标题】基本特快路线【英文标题】:Basic Express Routes 【发布时间】:2015-07-22 04:42:29 【问题描述】:如何让以下路线在 Express 中工作:
/ (get and post)
/users (get and post)
现在,当我访问 /users 时,页面会正确呈现,但在提交时,它会运行 /index(发布路由)中的代码,而不是 /users(发布路由)中的代码。 我的文件如下所示:users.js:
router.get('/', function(req, res, next)
var title = 'users';
res.render('users');
);
router.post('/',function(req,res) ....);
index.js:
router.get('/', function(req, res, next)
var title = 'index';
res.render('index');
);
router.post('/post',function(req,res)
app.js:
var routes = require('./routes/index');
var users = require('./routes/users');
var show = require('./routes/show');
在 app.use 部分:
app.use('/users', users);
app.use('/show', show);
app.use('/', routes);
EDIT:Form动作是:
form(method="POST", action="/post")
【问题讨论】:
这可能有助于显示您如何执行发布请求(即:通过表单属性、AJAX 等) 通过表单提交。 @victorkohl 我很确定你是对的。我已将表格添加到问题中。应该是什么? 您的表单操作不应该是/users
而不是/post
吗?
这就是我的想法,但这不起作用。其他地方有错误吗?
【参考方案1】:
就像 Nicholas 在 cmets 中所说的那样,您应该将您的表单更新为:
表格
form(method="POST", action="/users")
这将在您的用户控制器中访问您的 POST 路由。
如果您还希望向 /
发送 POST,则应将您的 index.js
更新为:
Index.js
// it should be / not /post
router.post('/',function(req,res) ...
另外,请注意,您可能需要使用 body-parser 来解析表单数据。
希望这会有所帮助!
【讨论】:
谢谢!这真的很有帮助。以上是关于基本特快路线的主要内容,如果未能解决你的问题,请参考以下文章