SailsJs res.render vs res.view

我正在尝试使用SailsJs来制作PassportJs + EJS模板引擎的简单身份validationWeb应用程序。

这是我在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代码

对于这个不同的任何解释? 它是Sails的新特性还是Express的内置特性? 在哪里可以find有关这方面的文件?

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