SailsJs res.render vs res.view

hao*_*ang 5 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
Run Code Online (Sandbox Code Playgroud)

如果我使用: res.render('/auth/login', { message:'err' })

浏览器返回login.ejs的HTML代码

如果我使用:res.view('/auth/login', { message:'err' }) 那么它返回包含在layout.ejs的<% - body%>中的login.ejs代码

这有什么不同的解释?它是Sails的新功能还是内置的Express?哪里可以找到关于此的文件?

glo*_*tho 12

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