服务器端javascript的使用是否普遍?为什么会使用它而不是任何其他服务器端脚本?是否有一个特定的用例使其比其他服务器端语言更好?
另外,对于如何开始尝试它感到困惑,我在freeBSD上,为了运行服务器端的javascript我还需要安装什么?
答案 0 :(得分:47)
它是这样的:
服务器很昂贵,但用户可以免费在浏览器中为您提供处理时间。因此,与任何足以需要运行多个服务器的站点上的客户端代码相比,服务器端代码相对昂贵。但是,有些事情你不能留给客户,比如数据验证和检索。您希望在客户端上执行这些操作,因为这意味着用户的响应时间更短,而且您自己的服务器基础架构更少,但安全性和可访问性问题意味着需要服务器端代码。
通常情况是你同时做两件事。您编写服务器端逻辑是因为必须这样做,但您也在javascript中编写相同的逻辑,希望能够为用户提供更快的响应,并在某些情况下为您的服务器节省一些额外的工作。这对验证码特别有效。
由于我们所有(大多数)程序员都在这里,我们应该立即发现新问题。开发两组相同的逻辑不仅涉及额外的工作,而且还有维护它所涉及的工作,平台产生的不可避免的错误不能很好地匹配,以及随着时间的推移实现漂移而引入的错误。
输入服务器端javascript。我们的想法是您可以编写一次代码,因此相同的代码可以在服务器和客户端上运行。这似乎解决了大部分问题:您可以同时完成所有服务器和客户端逻辑的完整设置,没有漂移,也没有双重维护。当你的开发人员只需要知道服务器和客户端工作的一种语言时,这也很好。
不幸的是,在现实世界中,它并没有那么好用。问题是四方面的:
这些并非完全无法解决的技术问题:您将服务器支持的语言限制为大多数浏览器都支持的javascript子集,提供了解此子集的IDE和服务器端扩展,制定一些规则关于页面结构,以尽量减少DOM问题,并提供一些锅炉板javascript包含在客户端,使平台更好用。结果就像Aptana Studio / Jaxer,或者最近的Node.js,它们可能非常好。
但不完美。在我看来,有太多的陷阱和很少的兼容性问题,使这真的很闪耀。最终,与开发人员的时间相比,额外的服务器仍然很便宜,而且大多数程序员使用javascript以外的其他东西都能提高工作效率。
我真正希望看到的是部分服务器端javascript。当请求页面或提交表单时,服务器平台在javascript中执行请求验证,可能作为Web服务器的插件完全独立于其余部分,但响应使用您选择的平台构建。
答案 1 :(得分:6)
我认为使用服务器端Javascript的一个非常酷的用法,几乎不经常用于数据验证。有了它,您可以编写一个javascript文件来验证表单,在客户端检查它,然后在服务器端再次检查它,因为我们不应该信任客户端上的任何内容。它可以让您保持验证规则DRY。非常方便。
另见:
答案 2 :(得分:3)
Javascript只是一种语言。因为它只是一种语言,所以您可以在浏览器,服务器,嵌入其他应用程序,独立应用程序等任何地方使用它。
话虽如此,我不知道“服务器端Javascript”发生了很多新的发展
答案 3 :(得分:3)
Javascript是一种非常好的语言,具有自我/方案原型样式库和C样式语法。有一些问题,请参阅Javascript the Good Parts,但一般来说它是一流的语言。问题是大多数javascript程序员都是糟糕的程序员,因为它很容易上手。
谷歌的一个团队在Rails上构建了Rhino,这是一个像Ruby on Rails这样的MVC框架,用javascript编写并在Rhino上运行Java VM的javascript解释器。在这种情况下,他们需要使用Java VM,但希望获得一种快速(javascript快速),支持鸭子打字并且灵活的语言。
另一个例子就像CouchDB,一个面向文档的数据库,它使用json作为它的传输格式和javascript,因为它的查询&索引语言。他们希望数据库尽可能是Web原生的。
Javascript擅长字符串和dom(xml)操作,沙盒,网络,扩展等等......这些功能是您在开发Web应用程序时经常使用的功能。
所有这一切,我实际上并没有开发服务器端的JavaScript。这不是一个坏主意,但绝对不常见。
答案 4 :(得分:1)
我们在客户端使用javascript,因为它存在,而不是因为我们选择的语言列表。我不会为服务器上的任何杂务选择它。
您可以在服务器上运行您喜欢的任何语言,实际上,您可以随意使用。
javascript可靠且易于使用,但它对于服务器上的常见任务而言过于劳力密集。