backbone.js + node.js - express.js

4
我正在学习构建单页应用程序所需的所有技术。总结起来,我希望将我的应用程序实现为分离的层,其中前端仅使用API Web服务(通过socket.io传输JSON)与后端通信。前端基本上将使用Backbone.js(+HTML5、CSS3、jQuery),后端使用Node.js(+MongoDB、Express等)。选择使用Node是因为它支持socket.io。
我的问题可能听起来很基础,但我仍然不理解。
  1. 在这种配置下,是否需要使用Express.js?据我所知,Express.js的主要特点是提供Web API和通过路由提供Web页面。但由于我想使用Backbone.js作为SPA构建整个前端,并通过Socket.io提供CRUD,因此在我的项目中是否需要Express.js?

  2. 在这种配置下,节点服务器只会监听socket.io CRUD命令,是吗?在这里,没有必要将Express.js作为REST API服务器,对吗?

  3. 如果我只想要Web API和实时CRUD多播操作(就像您可以使用Socket.io一样),是必须使用Node.js作为后端,还是我可以使用其他技术?

我希望有人能为我提供一些答案,在此非常感谢您的时间和支持。
FOR EDITORS:几个月来,我一直有一些关于接受答案的大问题。我总是接受它们,但stackoverflow总是显示我没有接受。如果有stackoverflow编辑器能帮助我解决这个问题,我会非常感激。

1
简而言之,前两个问题的答案是“是”,最后一个问题的答案是“不是”。请查看维基https://github.com/LearnBoost/socket.io/wiki,以获取完整的详细信息。 - almypal
1个回答

3

在这种配置下,是否需要使用Express.js?

不需要。Socket.io的唯一要求是一个监听http.Server

在这种配置中,Node服务器只会监听socket.io crud命令,对吗?

有可能。你仍然需要能够提供任何必要的(静态)文件,以便SPA开始进行WebSocket请求。

[...]在后端是否必须使用Node.js,或者我可以使用其他技术?

不一定。Socket.io库确实需要Node.js。但是,如果你只需要它的功能,还有其他选项列在“其他语言”下。


嗨,乔纳森,非常感谢你的回答。我认为我在这里有一个很大的概念问题,如果您能解决它,我将不胜感激。如果我不想让Node.js提供静态文件(如html、css和javascript,就像传统的Express.js应用程序一样),因为我希望它完全独立于后端,那么谁应该提供我的静态内容?我的意思是,我的SAP内容。非常感谢您的帮助。 - Michael Trend
@MichaelTrend 你需要一个静态服务器。它可以是你正在用于socket.io的同一个http.Server,也可以是任何其他服务器系统--如nginx、apache等。WebSockets支持跨域连接。 - Jonathan Lonowski
你好Jonathan Lonowski,从你的个人角度来看,如果我想要构建一个SPA,你有什么建议?是通过http.server()提供html+css+javascript还是通过gninx? - Michael Trend
@MichaelTrend 两种方法都可以,但并没有“一刀切”的最佳选择,当然,我也无法告诉你什么对你最好。 :) 你只能尝试其中一种,看看自己是否喜欢。 - Jonathan Lonowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接