我正在尝试使用SailsJs使用PassportJs EJS模板引擎制作一个简单的身份验证Web应用程序.
这是我在AuthenController.coffee中的代码
processSignin: (req,res) -> passport.authenticate('local',(err,user,info) -> if err or not user return res.view('auth/signin',message:'Failed') req.logIn user,(err) -> return res.view('auth/signin',message:'Failed') if err res.redirect '/' ) req,res return
如果我使用:res.render(‘/ auth / login’,{message:’err’})
浏览器只返回login.ejs的HTML代码
如果我使用:res.view(‘/ auth / login’,{message:’err’})
然后它返回包含在layout.ejs的<% - body%>中的login.ejs代码.
解决方法
res.render是
expressJS method,而res.view是
SailsJs method.后者将请求的视图包装在默认布局中,除非请求不同的布局.因此,您必须决定是否只需要您正在请求的已编译模板(res.render)或更完整的视图(res.view).