Node.js 访问或将Express会话数据传递给Angular 6
在我们的设置中,我们使用Nginx、Node 8.11和Angular CLI 6,我试图将Express中设置的值返回Angular 6前端 我想我可能有一个独特的设置,我需要一些关于如何继续的帮助。在我们的设置中,我们有一个公司要求的登录页面,所有应用程序都会路由到该页面。当用户成功登录到该页面时,它将重定向回调用站点,然后继续正常处理 流程是这样的 第一名: 用户输入我们的内部url-我们使用nginx和node。然后在node server.js中,我们在express中设置了一个会话,如下所示:Node.js 访问或将Express会话数据传递给Angular 6,node.js,angular,express,session,nginx,Node.js,Angular,Express,Session,Nginx,在我们的设置中,我们使用Nginx、Node 8.11和Angular CLI 6,我试图将Express中设置的值返回Angular 6前端 我想我可能有一个独特的设置,我需要一些关于如何继续的帮助。在我们的设置中,我们有一个公司要求的登录页面,所有应用程序都会路由到该页面。当用户成功登录到该页面时,它将重定向回调用站点,然后继续正常处理 流程是这样的 第一名: 用户输入我们的内部url-我们使用nginx和node。然后在node server.js中,我们在express中设置了一个会话,
// setup our session managment
var session = require('express-session');
app.use(session({
name: config.ses_cookie_name,
resave: true,
saveUninitialized: true,
secret: config.session_secret
}));
第二步:
然后,我们的节点server.js调用一个路由/进程——例如app.use(auth.verifyuser());这将调用公司登录页面,该页面将验证用户(或不验证用户)并发回用户信息
第3步。
一旦节点应用程序从公司登录页面获得有效的用户信息,它就会继续将用户路由到主应用程序
app.get('*', (req, res) => {
res.sendFile(path.resolve('dist/index.html'));
}
});
我的主要问题是-在这一点上,在我启动应用程序的角度部分之前,我有用户的信誉(用户名、级别等)。但是,我不知道如何将这些信息传递给Angular应用程序,或者Angular是否已经可以访问这些变量。如有任何建议,将不胜感激
而且,我不是专家,一直在学习
谢谢 不,您不能使用
res.sendFile(…)
方法和html一起发送任何数据,您可以使用如下方法
res.render('index', { loggedInUser: loggedInUserObj }, function(err, html) {
// ...
});
app.set('view engine', 'ejs');
注意:在上面的示例中,假设loggedInUserObj
保存您登录的用户的数据
为了使用它,您需要像这样设置查看引擎
res.render('index', { loggedInUser: loggedInUserObj }, function(err, html) {
// ...
});
app.set('view engine', 'ejs');
然后你可以像这样定义你的索引
页面(你正在使用res.render
)这里我转储loggedInUserObj
对象以确保我们的数据被传递
<%- JSON.stringify(loggedInUserObj) %>
希望这有帮助