Express.js的sendfile()与render()方法的区别

77

我尝试了 res.render('index.html')res.sendfile('index.html') 两种方法,它们似乎都做了同样的事情。我觉得 Express.js 的文档并不是很有帮助。

这两种方法有什么区别?


请查看Express API文档:https://expressjs.com/en/api.html#res.render 和 https://expressjs.com/en/api.html#res.sendFile - Noam Manos
1个回答

161

render方法在使用HandlebarsJade等模板引擎时起作用。

模板引擎是一种解析给定模板文件并生成HTML输出的工具,这样你可以根据程序中的某些变量生成HTML网页。

在编写具有前端的应用程序时,通常会使用Express.js与此类模板。

另一方面,sendfile方法只是将给定文件发送到客户端,而不考虑文件类型和内容。

由于你正在使用HTML文件,因此没有什么特别需要模板引擎解析的。因此,render的输出与sendfile相同(即文件中编写的HTML)。因此,两者产生相同的结果。


感谢简明扼要的解释! - Soubriquet
那么你认为哪一个更好呢? - Sarthak Hingankar
并不是说任何选项都比另一个更好,每个选项只会用于特定情况,在服务器上配置了模板引擎时必须使用res.render,否则使用其中任何一个都没有什么不同的效果,但最简洁的方法是使用res.sendfile。 - Toms_Hd3z

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接