Node.js 常见的发展问题、陷阱和建议是什么?
我在Node.js中只开发了2周,并开始重新创建一个以前用PHP编写的网站。到目前为止还不错,看起来我可以在相同或更短的时间内在Node(使用Express)中完成与PHP相同的事情 我遇到了一些您必须习惯的事情,例如使用模块、不共享公共环境的模块,以及养成在文件系统和数据库操作中使用回调的习惯等 但是,开发人员以后可能会发现哪些对node中的开发非常重要的东西呢?在节点中开发的其他所有人都有问题,但这些问题直到稍后才会出现?陷阱?有什么专业人士知道而普通人不知道的吗Node.js 常见的发展问题、陷阱和建议是什么?,node.js,express,Node.js,Express,我在Node.js中只开发了2周,并开始重新创建一个以前用PHP编写的网站。到目前为止还不错,看起来我可以在相同或更短的时间内在Node(使用Express)中完成与PHP相同的事情 我遇到了一些您必须习惯的事情,例如使用模块、不共享公共环境的模块,以及养成在文件系统和数据库操作中使用回调的习惯等 但是,开发人员以后可能会发现哪些对node中的开发非常重要的东西呢?在节点中开发的其他所有人都有问题,但这些问题直到稍后才会出现?陷阱?有什么专业人士知道而普通人不知道的吗 如果您有任何建议和建议,我
如果您有任何建议和建议,我将不胜感激。以下是您可能在以后才意识到的事情:
- 节点将暂停执行以最终/定期运行垃圾收集器。发生这种情况时,您的服务器将暂停一段时间。对大多数人来说,这个问题不是什么大问题,但它可能成为构建近时间系统的障碍。看
- 节点是单个进程,因此默认情况下只使用1个CPU。有内置的集群支持来运行多个进程(通常每个CPU一个进程),在大多数情况下,节点社区认为这是一种可靠的方法。然而,你可能会对这个现实感到惊讶
- 堆栈跟踪通常由于事件队列而丢失,因此您的日志记录和调试方法需要显著更改
- 记住在成功回调时执行
。将null作为第一个参数传递是很奇怪的,因此我忘记了这样做。相反,我意外地执行了回调(null,value)
,调用方将其解释为错误,直到我调试了一段时间并拍了拍额头回调(value)
- 当您在guard子句中调用回调并且不希望函数继续执行超过该点时,忘记使用
。有时这会导致回调被调用两次,从而导致各种各样的错误行为return
- 在node.js中,使用一个很棒的流控制库,可以更轻松地执行复杂的操作,例如并行加载3个网络资源,然后串行调用2个DB,然后并行写入2个日志文件,然后发送HTTP响应。这些东西在节点中非常简单和漂亮,在许多同步环境中几乎是不可能的
- node的所有模块都是新的和现代的,在大多数情况下,您可以找到一个设计精美的模块,该模块带有一个很棒的API,可以满足您的需要。Python现在也有很好的库,但将Node的cheerio或jsdom模块与Python的BeautifulSoup进行比较,看看我的意思。比较python的
模块和节点的请求
超级代理
- 通过使用现代平台,人们可以专注于现代web开发,这会给社区带来好处。节点社区和PHP社区之间的对比怎么强调都不为过