关于node.js:我们应该在ExpressJS中使用Jade还是React作为视图引擎

Should we use Jade or React as view engine in expressjs

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

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

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

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


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

个人意见:列举两个我个人使用的流行名称:Pug(玉器)和EJS。
EJS毫不费吹灰之力,保持了普通html文件的外观。

在那里,您有答案。但:

但是,实际上,如果您为其他人工作,或者以后可能根据自己的个人喜好,则将处理诸如REST和GraphQL之类的API设计。

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

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

由于您已经在处理React,作为MERN堆栈,并且您个人偏爱将其全部放在服务器端,因此Next.js将是一个不错的选择。

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

Next.js is basically React on server side, that allows you to build your View with a strong framework, instead of a template engine, with so much flexibility and power over it.

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

使用Next.js和Express.js构建服务器渲染的React应用

一些有趣的文章:

服务器端模板与REST API和Javascript前端

是否有任何理由使用服务器端呈现而不是HTTP API + JS Frontend? [关闭]