Nodejs Express:login后发送不同的页面

我正在尝试使用expressjs创build一个网站。 如果他已经login,我想发送一个不同的页面给用户。

我能够发送原始的HTML网站,但链接的文件,如index.css不beeing加载!

app.use(cookieParser()); app.use(expressSession({secret:'somesecrettokenhere', resave: false, saveUninitialized: true})); app.use(bodyParser()); //app.use(express.static(path.join(__dirname, '../client/login'))); // disable layout var mainPage = express.static(path.join(__dirname, '../client/main')); var loginPage = express.static(path.join(__dirname, '../client/login')); app.get('/', function (req, res, next) { console.log('getting /'); if (req.session.userName) { //app.use(express.static(path.join(__dirname, '../client/main'))); console.log("logged in"); mainPage(req, res, next); }else { //app.use(express.static(path.join(__dirname, '../client/login'))); console.log("not logged in"); loginPage(req, res, next); } }); http.listen(3000, function(){ console.log('listening on *:3000'); }); 

提前致谢!

是的你可以。 你可以做response.render(pageName); 呈现您想要发送用户的页面。

 app.use(cookieParser()); app.use(expressSession({secret:'somesecrettokenhere', resave: false, saveUninitialized: true})); app.use(bodyParser()); //app.use(express.static(path.join(__dirname, '../client/login'))); // disable layout // view engine setup app.set('views', path.join(__dirname, '../client')); app.set('view engine', 'jade'); app.get('/', function (req, res, next) { console.log('getting /'); if (req.session.userName) { //app.use(express.static(path.join(__dirname, '../client/main'))); console.log("logged in"); res.render("mainPage"); }else { //app.use(express.static(path.join(__dirname, '../client/login'))); console.log("not logged in"); res.render("loginPage"); } }); http.listen(3000, function(){ console.log('listening on *:3000'); }); 

我用玉模板引擎,你可以使用任何其他

它看起来像你的代码只是检查会话的用户名 – 我强烈build议反对这样做,因为它不是一个安全的方式来进行身份validation。

如果你想要一个安全的方式来进行身份validation,你应该看看使用像passportjs或stormpath的工具。 除了正常的身份validation之外,Stormpath还会执行一些操作(api auth,社交login等),而护照则更为简单。

下面是一个使用Stormpath做你想做的例子:

 app.get('/', function(req, res) { if (req.user) { res.render('template'); } else { res.render('anonymousTemplate'); } }); 

充分披露:我工作@ Stormpath,是该图书馆的作者 – 但它也是一样的。