在Node.js中结束发布请求

时间:2014-11-12 17:53:05

标签: javascript html5 node.js post express

简单的问题,但我似乎无法找到我需要的答案。我需要结束POST请求,而不是根据res.end(...)中的要求发回页面html;或res.send(...)。

这是我的表格:

<form method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Login">
</form>

这是我在节点中的请求处理程序(我正在使用exppress):

app.post( '/' , function( req, res ) {
if(req.body.hasOwnProperty('username') && req.body.hasOwnProperty('password')){
    console.log("Login requested",req.body.username);
    var minute = 120 * 1000;
    var userid =  UUID();
    res.cookie('user', userid, { maxAge: minute,signed: true});
    // I need to end it here
}
});

如果我只做res.end();它显示客户端上的空白页面,我不希望它做任何事情。 res.send(&#34;信息&#34);再次使用&#34; info&#34;重写整个页面。我该如何防止这种情况?此外,我需要发回信息,登录是否成功。如果我没有返回任何内容,页面就会停止加载..任何人都遇到过这样的问题或者能看到任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

您还可以使用res.send()一条消息,如您所示,表明它已结束。或者我做的是,假设这个表单是在玉文件中(让我们称之为index.jade),我将消息设置为参数。

所以做一些像

这样的事情
res.render("index", 
            { 
                isLoggedIn: false
            }
        );

在玉器布局上,您可以检查这些变量并在刷新时显示相关消息。因此,您的表单将类似于以下index.jade文件:

if isLoggedIn
  p Yay!
else
  p Login failed
  form(method="post")
    input(type="text" name="username")
    input(type="password" name="password")
    input(type="submit" value="Login")

这充分利用了Express和Jade的力量。希望它有意义!