我正在尝试使用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' })
然后它返回login.ejs代码包含在layout.ejs的<% - body%>
对此有何不同?它是Sails的新功能还是内置的Express?哪里可以找到关于此的文件?
答案 0 :(得分:11)
res.render
是expressJS method,而res.view
是SailsJs method。除非请求不同的布局,否则后者将请求的视图包装在默认布局中。因此,您必须决定是否只需要您要求的已编译模板(res.render
)或更完整的视图(res.view
)。