【发布时间】:2014-03-07 12:10:32
【问题描述】:
首先,我想为我的英语道歉。
我有一个使用 Express 和 Jade 的 Node.js 应用程序。我的主页有一个表格,允许人们注册。我通过 POST 发送数据。我有一个这样的处理程序:
app.post('/userCreate', user.create);
还有:
exports.create = function(req, res){
//creates the user in the database
res.render('./game/main'); //goes to the main game page
}
我的问题是,当人们注册并呈现主页时,URL 中会出现“localhost:3000/userCreate”。因此,如果我按 F5,所有数据都会通过 POST 再次发送,因为它再次捕获“/userCreate”,并尝试创建另一个用户。
我认为一个选项可以在创建用户后更改 URL,但我意识到“渲染”和“重定向”方法都不会改变它。
我一直在阅读有关 post-redirect-get 模式的文章,但我不知道如何在没有表单的情况下进行获取,我的意思是,通过 javascript 而不是 HTML。
【问题讨论】:
-
你的数据库是什么?我想mongo和mongoose。您可能应该为您的用户添加一个唯一密钥(用于电子邮件或伪...)
email: { type : String, index: { unique: true }}, -
我有一个唯一的密钥。尽管您按 F5,但不会创建用户,因为它是唯一的。但问题是我不想重新发送数据。
标签: javascript node.js express pug