Node.js是否是此应用程序的正确选择?

Node.js是否是此应用程序的正确选择?,node.js,mean-stack,Node.js,Mean Stack,我花了过去几天的时间来弄清楚我计划构建的交互式学生平台应该使用什么样的开发堆栈 我发现平均堆栈可能非常适合这项工作。但是,我面临着一个难题,即是否使用Node.js作为应用程序的后端技术: 考虑节点 的理由 后端将主要由实时组件组成。例如,协作工具、通知等 这些组件将同时处理这些数据 它将比传统的服务器端编程语言(如PHP)扩展得更好 使用REST(例如移动应用程序)公开数据将是轻而易举的事 在前端和后端使用一种数据格式(JSON)将加快开发速度 怀疑 有些组件需要计算。虽然没有那么复杂

我花了过去几天的时间来弄清楚我计划构建的交互式学生平台应该使用什么样的开发堆栈

我发现平均堆栈可能非常适合这项工作。但是,我面临着一个难题,即是否使用Node.js作为应用程序的后端技术:

<强>考虑节点

的理由
  • 后端将主要由实时组件组成。例如,协作工具、通知等
  • 这些组件将同时处理这些数据
  • 它将比传统的服务器端编程语言(如PHP)扩展得更好
  • 使用REST(例如移动应用程序)公开数据将是轻而易举的事
  • 在前端和后端使用一种数据格式(JSON)将加快开发速度
怀疑

  • 有些组件需要计算。虽然没有那么复杂,但它可能会减慢应用程序的速度
  • 尽管该应用程序主要是一个单页应用程序,但该应用程序(在稍后阶段)将具有一些节点通常不适合的功能,例如支付工作流

我已经从以前的方法进行了转换,所以这次我想确保选择正确的方法。Node.js是这个应用程序的正确选择,还是,例如,随着应用程序的成熟,带有Laravel的PHP后端会更好地适合这项工作?

例如,我认为有很多可能性您没有考虑示例将节点用于某些后端(例如,与第三方的连接、管理UI、处理并发用户)是一种非常有效的方法,同时将某些后端委托给更适合的其他组件(例如,需要大量计算的组件)

也就是说,我看不出你在“怀疑”中描述的任何东西是特别不爱点头的。你说的计算内容将是轻量级的,但我的建议是将其视为任何其他异步任务,如果你后来认为这是一个问题(例如,减慢应用程序的速度)如上所述,将其提取到单独的节点进程(因此不会阻塞主应用程序的事件循环)或使用以您选择的语言(Java、.NET、C、Perl等)构建的组件中是非常简单的


我不明白你为什么认为Node不适合工作流。我在Node和其他框架中看到并构建了许多工作流,它的适用性不亚于任何其他框架,而且比某些框架更好。

那么,你不会自己构建支付系统吧?在这种情况下,我想你选择的技术不会很重要。当然不是与银行的连接,但如果需要与系统的其他组件集成,则情况就不同了,对吗?我不太清楚“与系统的其他组件集成”是什么意思?节点也一样(在较高级别上)从任何其他服务器语言:它可以处理请求和发送响应。与paypal/stripe、braintree或实际上的ant支付提供商的集成都有很好的文档记录,通常会提供rest api+某种令牌管理,我与node的支付网关已经合作了3年多。另外,请签出shopify+node.js-这是一个很酷的教程--它可能会简化您的许多工作负载。