【问题标题】:Failing to get POST params using node.js and express无法使用 node.js 和 express 获取 POST 参数
【发布时间】:2013-01-16 15:05:26
【问题描述】:

我对 node.js 很陌生,我喜欢它。我只是想通过一个非常简单的登录来工作。当我尝试使用 GET 获取表单输入数据时,我没有遇到问题。但我正在发送密码,所以我不想使用 GET,因为 url 中的信息。

表单打开 /login (admin.login) 但我不断收到错误

无法发布/登录

表单是用 Jade 编写的,这不应该是一个问题,因为它以 HTML 结尾。

extends layout

block content 
h1 Admin Login
form(action="/login", method="post")#inputFields
    span Username
    input(type="text", name="username")
    span Password
    input(type="password", name="password")
    input(type="submit")

这是登录链接到的文件

/*
 * GET home page.
 */

exports.index = function(req, res){ 
    if (req.session.UserLogin != true) {
        res.redirect("../login");
    } 

    res.render('index', { title: 'Express' });
};


exports.login = function(req, res){  
    req.
  res.render('login', { title: 'Express' });
};

真的就是这样,因为它不允许我在那之后做任何事情。

非常感谢 杰森霍恩斯比

【问题讨论】:

  • 你添加了一个路由来处理 '/login' 的 POST 请求吗?请张贴代码。
  • 您能否验证您的路线是否有 POST "/do" ?
  • 到目前为止,我没有对数据做任何事情,它只是 html。
  • @Jason 你能修复你的帖子吗(我尽我所能......)
  • 对不起...我是stackoverflow的新手。

标签: node.js post get express


【解决方案1】:

问题似乎是您没有设置路由来处理 POST 登录请求。您似乎使用 Express 作为框架,所以只需添加一个:

app.post('/login', handleLogin); 

处理请求。然后你可以有一个函数来处理:

exports.handleLogin = function (req, res) {
    //Handle request here
    var username = req.body.username;
    var password = req.body.password;
}

注意post参数可以通过req.body对象访问

【讨论】:

  • 非常感谢您的帮助,成功了。我有 app.get 而不是 app.post。不知道有什么区别。
  • 没问题。为了将来参考,您可以查看 Express 的 API 参考:expressjs.com/api.html#app.VERB
猜你喜欢
  • 2014-12-20
  • 2014-12-08
  • 2021-08-15
  • 2018-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
相关资源
最近更新 更多