Node.js 和 Tornado 之间的差异[关闭]

2024-01-29

除了node.js是用JS编写而Tornado是用Python编写之外,两者之间还有哪些区别?它们都是非阻塞异步 Web 服务器,对吧?除了语言之外,为什么要选择其中一种而不是另一种?


Node.js 的主要优点是它的所有库都是异步的所以你不必太担心阻塞。 mysql、postgres、redis 等都有异步库。默认情况下都是异步的。

Python 有一个适用于任何事物的库 - 但大多数这些库都不是异步的。为了利用龙卷风(而不是阻止进程),需要特殊的库(例如,您不能只是“pip install redis”并使用它,您需要类似的东西brukva https://github.com/evilkost/brukva),并且tornado库比node.js库少得多。例如,目前没有可用的异步 mysql 龙卷风驱动程序(或者至少我不知道)。

但是你仍然可以在tornado中使用许多python库(那些不执行i/o的库),并且tornado社区正在提出并填补空白。

根据我的经验,使用node.js 编写应用程序比使用tornado 更容易。我个人从node.js切换到tornado,因为它更适合我的python项目的现有基础设施(提供html页面的django站点和提供实时功能的tornado服务器之间的集成非常轻松)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 和 Tornado 之间的差异[关闭] 的相关文章

随机推荐

  • Chart.js 版本 2.2.1 不会显示图表

    我一直在尝试使用 Chart js 版本 2 2 1 来使用另一个站点的教程来显示一个简单的图表 即使有最基本的数据也不会显示任何内容 如果我使用缩小版本 则该版本是 CDN 的版本 什么都没有 zip 在 Brackets 版本 1 0
  • 使用 Either 链接方法调用

    我想知道是否可以创建某种 方法调用链 所有方法都返回相同的 Either Error Result 我想做的是 依次调用所有方法 当方法返回 Left Error 时 停止方法调用并返回调用链中找到的第一个 Left 我尝试过一些东西 包括
  • android 4.2.2支持jre 1.7吗? [复制]

    这个问题在这里已经有答案了 我有一个 Android 4 2 2 的手持设备 现在 我想知道是否可以知道该版本支持哪种java运行时环境 因为android是基于java的 实际上我想在我新开发的 android 4 2 2 应用程序中使用
  • 如何使用 firebase 模拟器设置 firebase firestore 和云功能测试套件进行 JS 开发

    根据 Firebase 团队的以下 google I O 2019 帖子 新的模拟器允许我们结合 Firebase 数据库加上云功能来完全模拟我们的 Firebase 服务器代码 这也意味着我们应该能够为其编写测试 我们正在发布一个全新的
  • Azure 持续部署错误无法加载文件或程序集 Microsoft.WindowsAzure.Packaging

    当我尝试将项目部署到云服务时 使用持续部署和托管构建控制器 我突然开始收到此错误 C Program Files x86 MSBuild Microsoft VisualStudio v14 0 Windows Azure Tools 2
  • 如何使用 Hydra-fb 将配置文件收集到列表中?

    假设我有一个抽象类db在我的代码和类中db1 db1 db1继承自db 我的项目使用hydra https hydra cc 并具有以下结构 my app py conf yaml db db1 yaml db2 yaml db3 yaml
  • 将图像从phonegap应用程序上传到WCF服务

    我正在尝试使用phonegap文件传输API将图像从我的手机上传到WCF服务器 以下是我的代码 但我无法将图像上传到服务器 请给一些建议 测试 html div div div div
  • 使用 ZingChart 的多维堆叠条形图

    我正在尝试使用 ZingChart 创建多维堆叠条形图 据我所知 这是 由于某种原因 图像没有显示 它的链接是 https drive google com file d 0B14IyWv9zwZ9a0hWR0lXTDZQXzQ view
  • 如何创建像球拍一样的 make-curry 函数

    我想看看如何模仿 curry func that racket提供 下面是我如何手动柯里化函数的示例 lang sicp convert to a curried function define add1 x y x y define ad
  • 为什么background-filter:blur() 不能正常工作?

    我正在尝试实现这个图像 其中 带有文本 Dog 的 div 被部分覆盖并且blurring图片 所以我尝试了这个 profile background image url https townofbeekmantown com wp con
  • 如何将Dockerfile和应用程序文件部署到boot2docker

    我刚刚开始学习 Docker 我正在尝试在 Windows 上使用 boot2docker 进行简单的设置 我无法在任何在线教程或示例中找到如何使 boot2docker VM 可以访问我的项目文件 我下载了 boot2docker 并成功
  • jQuery 和其他库

    我在 jQuery 方面遇到了这个问题 并且不知道如何解决它 任何人都可以帮助或提供一些帮助 异常 组件返回失败代码 0x80070057 NS ERROR ILLEGAL VALUE nsIDOMXPathEvaluator evalua
  • 使用 ng-controller 时延迟模板加载

    我试图推迟加载我的主控制器 模板 AppController 直到我从服务加载用户配置文件 对于所有导航路线 我使用 routeProvider 进行解析 when edit editId templateUrl editTemplate
  • 在 ggplot2 中的一系列点周围放置边界

    我想在一系列点周围设置边界 我该怎么办 These are my points 我尝试了 geom line 但这显然是错误的 因为它产生了这个 Thanks Use geom path代替geom line 这是一个例子 i lt seq
  • 从旧的init_timer到新的timer_setup的适应

    我一直在尝试将驱动程序从 2 6 移植到 4 X 而没有原始板制造商的支持 并且 Linux 经验非常有限 原来的驱动使用的是init timer 并传入一个指向timer list结构 那timer list结构的data元素被设置为指向
  • WPF DragDrop.DoDragDrop(用于右键单击?)

    在 WPF 中 我想使用右键单击来启动拖放 像 Windows 资源管理器一样 右键单击 稍微移动 您就会得到装饰器来指示操作中的拖放 不要移动 当您松开按钮时 您会看到上下文菜单 我已经启动了这一切 但是当我调用 DragDrop DoD
  • 自然对齐的内存地址

    我需要从现有的64位值中提取一个内存地址 这个地址指向一个4K数组 起始值为 0x000000030c486000 我需要的地址存储在位 51 12 中 因此我使用以下方法提取这些位 address start gt gt 12 0x000
  • 如何从在线检查器中隐藏 codeigniter 足迹区域?

    这可以删除吗codeigniter来自在线工具的足迹区域 例如wappalyzer com or builtwith com并使 敏感项目技术无法检测 是的 这是可能的 首先 您需要知道它是如何被检测到的 看一下 Wappalyzer 代码
  • 如何使用 C# 'foreach' DataTable 中的列?

    如何使用循环遍历数据行中的每一列foreach DataTable dtTable new DataTable MySQLProcessor DTTable mysqlCommand out dtTable foreach DataRow
  • Node.js 和 Tornado 之间的差异[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 除了node js是用JS编写而Tornado是用Python编写之外 两者之间还有哪些区别 它们都是非阻塞异步 Web 服务器 对吧 除了语言