服务器端的JavaScript框架

时间:2012-07-14 21:36:01

标签: javascript server-side javascript-framework serverside-javascript server-side-scripting

我希望用更好的东西替换PHP(似乎每个人都说PHP是邪恶的,对吗?),并考虑服务器端JavaScript。

node.js似乎非常受欢迎,但我担心我会因为异步的东西而疯狂。是否可以在节点下编写正常(同步)代码?

我的清单:网络和命令行脚本,良好的性能(在 The Computer Language
Benchmarks Game
,V8似乎比PHP快一个数量级),最好由某些公司或社区开发,这样它就不会有一天,用户社区放弃了一个像样的模块库。

我不考虑基于Rhino的各种框架,因为Rhino在Java中运行,而我不是Java,意识到它的内存占用,而且将javascript编译为java的整个想法对我来说毫无意义。 / p>

花了一些时间谷歌搜索,发现了许多项目:Myna,Meteor,GromJS,APE,GLUEscript,v8cgi,silkjs,wakanda,GPSEE,sorrowjs,ejscript,Persevere,PhantomJS。

有人有经验吗?欢迎任何建议。

5 个答案:

答案 0 :(得分:5)

如果你问我,Node.JS就是你的选择。您可以编写同步代码,但只能在命令行脚本中执行此操作。在编写Web服务器时,您必须使用异步路由,否则它将无法执行,因为 JavaScript是单线程的并且一切都停止了。

Node.js如此之快的原因是异步IO。

你会习惯回调和事件,过一段时间你不想回去。

  

Node.js是一个基于Chrome JavaScript运行时的平台,可轻松实现   构建快速,可扩展的网络应用。 Node.js使用了   事件驱动的非阻塞I / O模型,使其轻量级   高效,非常适合运行的数据密集型实时应用程序   跨分布式设备。

答案 1 :(得分:5)

Meteor。建立在Node.js之上并快速增长very

  

在Meteor中,您的服务器代码在每个请求的单个线程中运行,而不是以Node的典型异步回调样式运行。我们发现线性执行模型更适合Meteor应用程序中的典型服务器代码。

更新一年后 - Why Meteor

答案 2 :(得分:4)

你看过Comparison of server side JavaScript solutions吗?

Node.js 很受欢迎。至于php速度,你看过HipHop吗?用javascript重写你的代码可能不会比php提供更多的性能提升。

答案 3 :(得分:4)

Nodejs在很多方面都是非常好的选择。

但是你说你担心它的异性。

有两点。

  1. 您永远不必担心异步,并且可以继续像PHP一样从顶层编写应用程序。如果您没有执行“阻止IO”,那就是这样。

  2. 如果您正在执行“阻止IO”,例如读取数据库或访问文件系统,则需要处理异步。幸运的是,有很好的方法可以做到这一点,而无需过多地改变编码习惯。

答案 4 :(得分:3)

感谢您提供您找到的“众多项目”列表。我们目前正在使用自1996年以来提供服务器端JavaScript实现的Microsoft ASP 3.0(“经典ASP”,随IIS一起提供) - 它快速,成熟并且由于COM技术具有相当的可扩展性。如果你没有固定到开源,那值得一看。对于我们的开源策略,我们将仔细研究SilkJS。