我开始用Node.js和Express编写我的第一个Web应用程序。我有两种方法。
我理解方法#2取决于浏览器中的AJAX支持,但如果这是您的项目,基于每种方法的优缺点,您会选择哪些以及为什么?
答案 0 :(得分:2)
如果我正确读取它,第一组路由选项#1和#2都是返回JSON而不是发送它的API。
假设在#2中你不会使用JavaScript进行AJAX调用来创建静态页面,而是仍然使用像app.use('/', express.static(path.join(__dirname, 'dist')));
这样的快速静态路由,两种方法之间的区别并不大。
除非你已经知道一些受支持的模板语言,例如mustache,否则你必须学习一个pick one之前(根据我的经验,这并不总是一件容易的事!)
如果你不了解一个,根据你的应用,你可能仍然可以从学习和使用它中受益。作为一个例子,你可以想到一个非常通用的UI,其中单个模板可以被重复使用很多次 - 就像一个通用的数据库UI,类似于众所周知的phpmyadmin。
如果是静态路由,您可以使用包含组件或模板的JavaScript框架(例如angular)来获得类似的结果。如果您不打算使用一个,那么可能会导致大量代码重复其他可重用的小部件。即使使用了一个,我也可以想象一下模板引擎会导致代码减少的情况(或者至少会减少项目中的文件)。但是不确定它是否会更容易导航,而且在项目增长时可以覆盖测试。
如果不了解您的项目,很难提供更多建议。
答案 1 :(得分:1)
如果您正在开发的产品主要是静态内容,其中包含一些动态内容,我建议您通过模板系统从后端提供HTML。一个很好的例子就是博客。你最终会得到更好的搜索引擎优化,并且在这种方法中可以减少移动的部分。
但是,如果您想开发单页面应用程序,我建议您将后端完全用作api,并将您的客户端逻辑完全写入React / Vue / Angular /中。单页应用程序的前端完全用javascript编写,最适合在线体验高度动态,“app like”的体验。想想gmail或facebook。
答案 2 :(得分:0)
在我目前的项目中,我们使用两种方法。许多视图是静态的,数据是从API调用(我们只使用角度)或自举值(我们用模板加载一些对象,如用户角色等)获得的。
但是,有些视图会在服务器站点上呈现,因为它可以轻松地动态注入值,令牌或其他支持数据,而无需额外请求。
所以,我投票支持灵活性