2

我知道以下问题可能有点含糊,但我仍然需要一些答案。

我即将实现一个基于 JSON 的 WebService,它将向几个网站和移动应用程序提供信息。

由于大部分时间我们都在执行 CPU 密集型 MySQL 查询并且需要缓存数据,因此 PHP 已经不够用了,我们决定迁移到 Node.js。

既然我们谈论的是完全异步编程,而不是像 PHP、Java 等面向运行时的东西,如何使用 Node.js 计划、管理、实施和维护复杂的业务逻辑?

我试图将一些非常简单的东西与 Node.js 放在一起,但几分钟后,我的所有代码都开始充满讨厌的回调,过度依赖注入,它变得一团糟。我应该如何将典型的同步工作流转换为对 Node 友好的东西?

我注意到大多数 Node.js 社区都将前提视为解决此问题的一种方法,但我仍然认为这还不够,它仍然是一团糟……

有小费吗?

4

1 回答 1

2

使用节点管理复杂的业务逻辑是可能的。我可以给你一些提示:

代码组织观点

认为异步

说起来容易,但是当我从 C 编程开始使用 node 时,这根本不是一件容易的事。

如果你有类似的东西:

read(function(){
    //some stuff
    write(function(){
        //some other stuff
       [etc...]
    }
}

您的代码可能应该是:

var onRead = function(){
    //some stuff
    write(onWrite);
}
var onWrite = function(){
    //some other stuff
}
read(onRead);

甚至更好:制作一个onRead模块?这让我得到第二个建议:

制作模块

很多。并在开始时加载它们。一个 50 行的模块读起来真的不会那么复杂,不是吗?

习惯这一点需要一些时间,但你很快就会有宾至如归的感觉。

使用旨在消除“嵌套回调地狱”的模块

异步就是其中之一。那里有很多。

我真的不使用那些。通常这只是糟糕设计的一种解决方法,但在某些情况下它们可能非常有用。

软件架构观点

没有你想象的那么大的变化。大多数情况下,您会想要类似于在无状态 php 应用程序上执行的操作,应用上述提示,应该没问题。

如果您需要更准确的建议,也许您应该粘贴一个代表您的问题的代码示例,让我们解释如何改进它。

于 2014-09-23T15:58:38.593 回答