URL 不会随 res.render() 改变
URL does not change with res.render()
我需要在使用 expressjs 从服务器登录到 ejs 模板引擎后发送应用程序列表。为此,我使用 res.render()
。即使它呈现指定的文件,它也不会更改 url。我应该怎么做才能与数据一起重定向并更改 url.
routes.js
const loginUser = requie('../Controller/LoginController');
router.post('/login', loginUser);
LoginController.js
const loginUser = (req, res) => {
/* login code */
res.render('apps/app-list', {
title: 'Application List',
isLoggedIn: true
});
};
登录成功后,正在渲染apps/app-list
的内容,但url仍然是users/login
。
如果您尝试发送数据,您应该呈现一个页面,这是我的应用程序的一个示例:
app.get("/myfood", ensureAuthenticated, (req, res) => {
Food.find({}, (error, allfood) => {
if(error) {
console.log(error)
} else {
res.render("myfood", {food: allfood})
}
})
})
因此,我将通过获取请求发送所有找到的食物。您可以发送多个对象。只需用逗号分隔即可。
正如我在评论中所说,如果你想,你不能这样做
res.redirect()
因此,在我的应用中,我想在用户注册时发送一条即时消息。这里:
newUser.save()
.then(user => {
req.flash("sucess_msg", "Thank you for registering.")
res.redirect("/login");
})
您可以在 YouTube 上稍微搜索一下如何使用 req.flash(),其中有一些很棒的教程。我是从护照节点应用程序 Brad Traversy 那里了解到的。
我能给你的就这些了。 req.flash() 定义在一个全局变量中
app.use((req, res, next) => {
res.locals.sucess_msg = req.flash("sucess_msg");
res.locals.error_msg = req.flash("error_msg");
res.locals.error = req.flash("error");
next();
});
尝试做同样的事情,也许从那里开始。希望你更近一步
我需要在使用 expressjs 从服务器登录到 ejs 模板引擎后发送应用程序列表。为此,我使用 res.render()
。即使它呈现指定的文件,它也不会更改 url。我应该怎么做才能与数据一起重定向并更改 url.
routes.js
const loginUser = requie('../Controller/LoginController');
router.post('/login', loginUser);
LoginController.js
const loginUser = (req, res) => {
/* login code */
res.render('apps/app-list', {
title: 'Application List',
isLoggedIn: true
});
};
登录成功后,正在渲染apps/app-list
的内容,但url仍然是users/login
。
如果您尝试发送数据,您应该呈现一个页面,这是我的应用程序的一个示例:
app.get("/myfood", ensureAuthenticated, (req, res) => {
Food.find({}, (error, allfood) => {
if(error) {
console.log(error)
} else {
res.render("myfood", {food: allfood})
}
})
})
因此,我将通过获取请求发送所有找到的食物。您可以发送多个对象。只需用逗号分隔即可。
正如我在评论中所说,如果你想,你不能这样做
res.redirect()
因此,在我的应用中,我想在用户注册时发送一条即时消息。这里:
newUser.save()
.then(user => {
req.flash("sucess_msg", "Thank you for registering.")
res.redirect("/login");
})
您可以在 YouTube 上稍微搜索一下如何使用 req.flash(),其中有一些很棒的教程。我是从护照节点应用程序 Brad Traversy 那里了解到的。
我能给你的就这些了。 req.flash() 定义在一个全局变量中
app.use((req, res, next) => {
res.locals.sucess_msg = req.flash("sucess_msg");
res.locals.error_msg = req.flash("error_msg");
res.locals.error = req.flash("error");
next();
});
尝试做同样的事情,也许从那里开始。希望你更近一步