2013-02-01 52 views
4

我正在学习构建单页应用程序(SPA)所需的所有技术。作为总结,我想实现我的应用程序作为单独的图层,其中前端只使用API​​ Web服务(json通过socket.io)与后端进行通信。前端将基本上是Backbone.js(+ html5,css3,jquery),后端使用node.js(+ mongodb,express等)。使用节点的决定是因为socket.io。backbone.js + node.js - express.js

我的问题可能听起来很基本,但我仍然不明白。

  1. 在这个配置上,是否需要使用Express.js?据我所知,Express.js的主要功能是提供Web API并通过路由服务网页。但是因为我想用Backbone.js作为一个SPA来构建整个前端,并通过Socket.io来提供CRUD,我的项目中是否需要Express.js?

  2. 在这个配置上,节点服务器只会监听socket.io crud命令,对吧?在这里,没有必要使用Express.js作为rest api服务器,对吧?

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

我希望有人能给我一些答案,并且非常感谢您提前给予您的时间和支持。

对于编辑:自从几个月以来,我接受了一些接受答案的大问题。我总是接受它们,但是stackoverflow总是表明我不知道。我真的很感激,如果一些stackoverflow编辑可以帮助我解决这个问题。

+1

总之,对前两个问题的回答是'是'和最后一个'没有。查看维基https://github.com/LearnBoost/socket.io/wiki查看完整的详细信息 – almypal

回答

3

在这个配置上,是否需要使用Express.js?

没有。对socket.io的唯一要求是收听http.Server

在这个配置上,节点服务器只会监听socket.io crud命令,对不对?

可能。您仍然需要能够提供SPA开始制作WebSocket请求所需的任何(静态)文件。

[...]是必须使用Node.js作为后端,还是我可以使用其他技术?

不一定。 socket.io库确实需要Node.js.但是,如果您只需要它的功能,则在“In other languages”下列出了其他选项。

+0

嗨乔纳森,非常感谢您的答案。我想我在这里有一个很大的概念问题,如果可以的话,我会很感激如果我不希望Node.js提供像HTML,CSS和JavaScript这样的静态文件(比如它应该使用传统的Express.js应用程序来完成),因为我希望它完全独立于后端,谁应该提供我的静态内容?我的意思是,我的SAP内容。非常感谢你提前 –

+0

@MichaelTrend你会想要*一个*静态服务器。这可以是用于socket.io或任何其他服务器系统的相同'http.Server' - nginx,apache等。WebSockets支持[支持跨源连接](http://stackoverflow.com/a/4044020)。 –

+0

嗨乔纳森Lonowski,从你个人的角度来看,如果我想要建立一个SPA的建议?通过http.server()或通过gninx提供html + css + javascript? –

相关问题