Ram*_*nta 5 javascript response node.js express
考虑一个简单的表单,它将电子邮件作为输入。如果身份验证失败,则“提交”按钮将调用引导模式。如果成功,它将重定向到下一个视图。
当出现引导模式时,浏览器会不断加载页面,等待响应。
我在服务器端使用此代码:
app.post('/', (req, res) => {
Users.findOne({
email: req.body.email
})
.then(user => {
if (user) {
obj = req.body.email
res.redirect('/survey')
}
})
})
Run Code Online (Sandbox Code Playgroud)
我试图添加一条else语句,以防找不到用户:
...
else {
console.log('User not found')
return
}
Run Code Online (Sandbox Code Playgroud)
我不想重定向到同一页面,因为模式无法正常工作。
是否有res实现此目的的方法?
正确的解决方案是使用 ajax 提交表单数据和处理响应
\n\n根据响应成功/失败,您可以重定向用户或从客户端显示错误模式
\n\n如果您仍然想在不使用ajax提交表单的情况下执行此操作,可以通过添加查询字符串将用户重定向到相同的url
\n\nres.redirect(\'/same-path?error=user_not_found\') \nRun Code Online (Sandbox Code Playgroud)\n\n并在客户端 JavaScript 中检查页面加载时的查询参数
\n\n$(document).ready ( function(){\n var url = window.location.search;\n var queryStr = url.split("?")[1];\n\n if(queryStr) {\n let hash = queryStr.split(\'&);\n for (var i = 0; i < hash.length; i++) {\n params=hash[i].split("=");\n if(params[0] == \'error\' && params[1] == \'user_not_found\') {\n // SHOW YOUR MODAL HERE\n }\n }\n }\n});\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n