gpt4 book ai didi

Node.js + Express : rewrite url path

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:02 25 4
gpt4 key购买 nike

我想知道是否可以用express重写url。

我实际上有这个代码:

var http, express, app;

http = require("http");
express = require("express");
app = express();

app.use(express.json())
app.use(express.urlencoded())

.post("/ajax_login", function (req, res) {
"use strict";
http.get({ host: "localhost", port: 8080, path: "/users/" + req.body.email + "/email" }, function (resp) {
resp.setEncoding("utf8");
resp.on("data", function (data) {
json = JSON.parse(data);
if (json.password.password === sha1(req.body.password)) {
res.render("home.ejs");
} else {
res.render("login.ejs", { email : req.body.email, error : "password is not good" });
}
});
});
})

.get("/login", function (req, res) {
"use strict";
res.render("login.ejs");
})

.listen(3030);

我从表单调用/ajax_login :

<form method="post" action="/ajax_login">
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" name="email" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password" />
</div>
<button type="submit" class="btn btn-primary">Connection</button>
</form>

问题是:当我调用/ajax_login 时,在 res.render 之后,我的浏览器上的 HTML 代码发生了更改,但 url 仍然是/ajax_login。

如何更改此网址?

我知道 JavaScript 解决方案:

window.history.pushState("", document.title, "/login");

但是,我想知道服务器是否存在解决方案。

谢谢

最佳答案

我会向请求局部变量添加一个错误,重定向到登录,然后检查渲染登录页面时是否存在错误。

.post("/ajax_login", function (req, res) {
"use strict";
...

if (password && email IS OK) {
res.locals.errorMSG = "password is not good";
res.redirect("/login"); //redirect vs render
} else {
res.render("home.ejs");
}

})

.get("/login", function (req, res) {
"use strict";
res.render("login.ejs", {error: res.locals.errorMSG || null});
})

res.locals

res.redirect

关于Node.js + Express : rewrite url path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21712651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com