最近,我听说很多 JavaScript 被用于服务器端。Node.js、express.js 和类似的东西被越来越多地提到,但我从来没有时间去深入研究这个话题。
现在,由于信息洪流不会减少,我不能再忽视这些情况。
我想知道两件事:
- 我可以用服务器端 Javascript 替换我的完整、简单的 PHP 后端吗?它主要用于数据库访问吗?
如果是的话:
- 这样做有什么好处吗?
如果不:
为什么会有这样的炒作?
这个话题似乎很复杂,不太容易学习,但随着时间的推移,我越来越觉得这可能是后端编码的未来。
是的你可以。
如果您主要提供数据,更现代的方法是使用 node.js 来实现一个 restful api。Node.js 特别适合这一点,因为它本质上是异步工作的——这意味着对数据源(即数据库)的每个请求本质上不会在服务器等待返回时阻塞,从而使其在在服务许多请求时高效。
您可以使用节点模块express.js或restify.js来实现这一点。
不过有一个警告——node.js 是一个单线程应用程序,这意味着在可扩展之前必须执行一些工作。对此有一些很好的解决方案,例如使用 Amazon Elastic beanstalk。但是由于 node.js 是一个相对较新的人,许多其他提议的解决方案可能需要一些哄骗才能为生产做好准备。
您可能会发现在开始之前阅读 Douglas Crockford 的 'Javascript the good parts' 很有帮助 - 我需要将我的 Javascript 知识提升到可以为 node.js 编写高质量可维护代码的水平
是的,您可以更换它。
你必须知道的关于 Node 的主要概念是being async,其次是being event-driven。因此,如果您的 PHP 应用程序只是访问 db 并返回响应,node.js 在此类应用程序中会更有效,因为不会阻止空闲以获取来自 db 的响应,但可以处理其他请求等等。
这并不复杂,如果你这样做。只是去潜入。不要问 - 原型。这是了解您是否真的需要它的最佳方式。
除了模板之外,我已将所有 PHP 需要替换为 node.js。