从expressJS中的POST方法获取值

发布于 2024-12-09 18:50:28 字数 1442 浏览 0 评论 0原文

我正在尝试在我的应用程序中注册用户。这是 HTML 代码:

<form id="registration_form" action="register" onsubmit="return validateForm();" method="post">
        Username: <input type="text" id="username" name="user[name]" /><br />
        Password: <input type="password" id="password" name="user[pass]" /><br />
        Repeat Password: <input type="password" id="password_repeat" name="user[pass]" /><br />
        Email: <input type="text" id="email" name="user[email]" /><br />
        <button type="submit" value="Register">Register</button>
        <div id="error_registration" style="color: red;">
        </div>
    </form>

我在服务器中所做的就是获取名称、通行证和电子邮件的值。

var express = require('express')
  , app = express.createServer(
    express.logger(),
        express.cookieParser(),
        express.session({ secret: 'keyboard cat' })
    )
  , io = require('socket.io').listen(app)
  , mongoose = require('mongoose')
  , schemas = require('./schemas')
  , Schema   = mongoose.Schema;

app.listen(80);
app.configure(function(){
    app.use(express.bodyParser());
});

[...]

app.post('/register', function (req, res) {
    registerUser(req, function(result){
         //do something
         var username = req.body.username;
    });
});

我的问题是:为什么用户名总是未定义?我读错了吗?那我该怎么办呢?

谢谢

I'm trying to register a user in my application. This is the HTML code:

<form id="registration_form" action="register" onsubmit="return validateForm();" method="post">
        Username: <input type="text" id="username" name="user[name]" /><br />
        Password: <input type="password" id="password" name="user[pass]" /><br />
        Repeat Password: <input type="password" id="password_repeat" name="user[pass]" /><br />
        Email: <input type="text" id="email" name="user[email]" /><br />
        <button type="submit" value="Register">Register</button>
        <div id="error_registration" style="color: red;">
        </div>
    </form>

What I do in the server is taking the values of name, pass and email.

var express = require('express')
  , app = express.createServer(
    express.logger(),
        express.cookieParser(),
        express.session({ secret: 'keyboard cat' })
    )
  , io = require('socket.io').listen(app)
  , mongoose = require('mongoose')
  , schemas = require('./schemas')
  , Schema   = mongoose.Schema;

app.listen(80);
app.configure(function(){
    app.use(express.bodyParser());
});

[...]

app.post('/register', function (req, res) {
    registerUser(req, function(result){
         //do something
         var username = req.body.username;
    });
});

My question is: why username is always undefined? Am I reading it in the wrong way? How should I then?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

韬韬不绝 2024-12-16 18:50:28

您的变量是用户而不是用户名。

看:

..input type="text" id="username" name="user[name]" ..

另外,您也可以随时执行 console.log(req.body) 来查看 POST 变量在终端中。

Your variable is user not username.

Look:

..input type="text" id="username" name="user[name]" ..

Also you can always do console.log(req.body) to see the POST vars in the terminal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文