我们应该在Express.js中使用Jade还是React作为视图引擎吗

时间:2019-06-24 11:50:33

标签: node.js reactjs express pug

我是ExpressJS的新手,并开始使用MERN Stack构建项目。

对于应该使用jade \ pug,EJS,React的视图引擎,我感到困惑。

我已经使用玉器将页面内容从mongodb渲染到浏览器中。 我应该使用后端在json中提供内容,而不是将整个页面呈现为HTML。

我还尝试实现https://github.com/reactjs/express-react-views 这样我就可以使用React从服务器渲染页面。 但是“ express-messages”和“ connect-flash” npm软件包存在一些问题。

1 个答案:

答案 0 :(得分:1)

根据我的拙见,这取决于您的偏好。实际上,选择哪个模板/视图引擎并不重要,因为您只是在学习和练习。 他们的学习曲线是steep
您甚至可以通过观看一些优质的youtube视频免费学习它们,您将获得完整的图片。
它们只是工具,仅此而已。

个人观点:列举两个我个人使用的流行观点:Pug(玉石)和EJS。
EJS没有大惊小怪,保持了普通html文件的外观。


那里,您有答案。

但是,实际上,如果您为其他人工作或以后可能成为自己的个人喜好,那么您将处理类似REST and GraphQL的API设计。

这意味着您的view与服务器端分离,这是MVC体系结构的一部分,将其留给客户端来处理,这就是RESTful/GraphQl API提供服务器和客户端之间的在线通信。


因此,这意味着您必须选择一个流行的前端框架,React,Angular或Vue。
选择前端框架比将view留给某些模板引擎要好得多。不仅具有更大的灵活性,而且使您在市场上更受欢迎。

由于您已经作为一个MERN堆栈已经在使用React,并且您的个人喜好是在服务器端全部使用它,因此Next.js将是一个不错的选择。

即使在MERN Stack研究员(https://mern.io/)的网站上引用:
我们建议您在React项目中使用Next.js。

  

Next.js基本上是服务器端的React,它使您可以使用强大的框架(而不是模板引擎)构建具有强大灵活性和强大功能的View。


由于您正在使用express作为Node.js的框架,因此本文对于将Next.js与express结合使用非常有用:

Building a server-rendered React app with Next.js & Express.js


一些有趣的文章:

Server Side Templates vs REST API and Javascript Front-End

Is there any reason to use server side rendering instead of HTTP API + JS Frontend? [closed]