【问题标题】: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吗?
  • 这就是我的想法,但这不起作用。其他地方有错误吗?

标签: javascript node.js express


【解决方案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 来解析表单数据。

希望这会有所帮助!

【讨论】:

  • 谢谢!这真的很有帮助。
猜你喜欢
  • 2022-08-14
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多