SailsJs res.render vs res.view

时间:2014-07-09 09:56:39

标签: node.js express sails.js

我正在尝试使用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?哪里可以找到关于此的文件?

1 个答案:

答案 0 :(得分:11)

res.renderexpressJS method,而res.viewSailsJs method。除非请求不同的布局,否则后者将请求的视图包装在默认布局中。因此,您必须决定是否只需要您要求的已编译模板(res.render)或更完整的视图(res.view)。