Nodejs:在哪里或如何编写复杂的业务逻辑?

最近我介绍了node.js和cool包,比如express和jade。 我有几个问题一直敲我的门:

如果我selectnode.js来构build我的下一个网站,我将使用JavaScript来编写我的服务器端复杂逻辑? 但我不认为你可以比较JavaScript与Java或Python来编写服务器端代码,因为它们拥有如此浩瀚的图书馆。 node.js真的是为了它吗? 或者我错过了什么?

我可以从node.js调用Java或Python吗?

不太清楚这些人大部分都在谈论什么。

一个“浩瀚的海洋图书馆”是社区正在积极努力的。 检查这个: http : //search.npmjs.org/#/_analytics – 昨天发布了8个软件包

它不会为你解决你的软件devise。 至于在哪里以及如何编写业务逻辑,我们中的许多人都接受mvc或mvvm或者其他类似的东西。 如果你正在构build一个应用程序,比如Rubyists(例如),构build他们的代码,你可以看看做这样的事情 – 没有人会告诉你如何构build你的代码。

检查https://github.com/joyent/node/wiki/modules

一些比较stream行的图书馆日常工作:

那里还有一大堆ORM,如果那是你的包。 比如http://mongoosejs.com/,http://sequelizejs.com/和朋友

testing驱动开发是节点的核心。 从完整的代码覆盖率分析到自定义断言模块,有15种不同的TDD软件包可供select。

说所有模块不完整是愚蠢的。 这个社区每天都有一群非常热心的工作人员在这个社区build立和维护着大量的开源工具。

可能有理由通过节点,但它不是一个不活跃的社区或缺乏图书馆。

瑞恩并没有从JavaScript开始。 为什么在JavaScript中创buildNode的很大一部分是JavaScript缺乏大量的库。

那些浩瀚的海洋图书馆几乎都是用封锁的代码写成的。

为了充分利用Node.js,你需要限制自己到非阻塞库。 这意味着可能需要编写一些库来完成Node.js中的项目。

我会说你错过了一些东西 – 更具体地说,Node.js的核心目的,即asynchronousI / O模型。

我开始了一个小小的项目来testingNode.js – 它如何“感觉”以及如何编程。 Node.js的代码很容易编写(虽然它的asynchronous范例对于传统的程序员来说并不那么简单),但是库很容易构build等等。即使npm也非常容易:我刚刚find了提供自己的代码的最直接的方法,就是把它作为一个公共的包装 – 这是很荒唐的!

但是,Node.js没有太多好的工具可以使用。 也许因为做任何事都容易了,大多数图书馆都是部分实施的,没有文件的解决scheme。

另外请注意,Node.js的相关区别不是JavaScript语言,而是asynchronousI / O模型。 这是Node.js最有趣的一个方面,但是asynchronous编程风格并没有像传统的Web开发方式那样得到很好的testing。 也许这真的是宣传的奇迹 – 也许它不如承诺的那么好。

即使在这样的情况下,您是否有足够的开发人员来维护这样的(至less仍然)不寻常的代码库? 如果你能从Node.js的asynchronous“生活方式”中获得很多好处,你可以使用更多的合并语言和框架,比如Twisted for Python(这是我的首选languabe,所以请注意我的意见:) )。 Java也可能有这样的情况。 无论如何,我怀疑你现在对这个模型没什么兴趣,因为你的问题更多地关注语言而不是编程范例,所以Node.js没有太多的东西给你。

所以…不,我现在不会在Node.js中开发一些专业的东西,尽pipe我觉得这样做既有趣又有启发性。 你可以做到这一点,但是不要忘记Node.js的主要目的:asynchronousIO,事件驱动的编程。 如果这是你想要的,Node.js是一个很好的select。

当然,你可以使用python,php,c ++或者其他技术来使用nodejs,因为cuz节点可以把它作为一个subprocess运行。 Nodejs给你一个使用你自己想要的技术的自由。 你可以使用任何你想结合最性能的程序。

我想你会为通过Node.js在JavaScript中完成的工作量感到惊讶。 有许多可用于Node 的库 ,而且更多的是一直在编写的 。 此外, 本机扩展也适用于您可能需要下拉到较低级别的时间。

如果您认为Node在您的业务逻辑中将无法提供差距,请查看NPM或者让Google快速查看其他人是否已经解决了您的问题。

有些东西,JavaScript是不能做的。 如果你碰到这些节点可能不是你的应用程序的最佳select。 不过,你大概可以完成你所需要的大部分工作。

至于API是有限的,我build议你看看npm和库中的所有库。 特别是像underscore.js 。 许多人的目标是弥补与其他语言相比,原生JavaScript缺乏的空白。