我正在尝试学习HTML5 / Node.js / Express / MongoDB / AngularJS / Websocket这个似乎让大家现在兴奋的事情。
作为一个轻微的适得其反,我实际上很难在每种技术实际上做些什么(特别是将ejs作为模板引擎)。无处不在的Javascript和HTML!
特别是,我在分离websockets(或类似socket.io)和AngularJS提供的服务时遇到问题。他们似乎都试图提供动力而不必重新发送整个HTML页面。
他们是否相互替代?或者它们用于不同的目的?
此外,这两种技术似乎都转向绕过Express'路由的单页Web应用程序。那么,当使用Websockets / AngularJS时,Express会利用什么?似乎Express提供的传统路由取代了只改变AngularJS中单页的视图
答案 0 :(得分:6)
AngularJS是一个javascript库,可以处理很多不同的事情。与WebSockets最相关的许多内容之一是在vanilla Javascript特性XmlHttpRequest之上的层。
XmlHttpRequest和WebSockets都是用于与服务器交换数据而无需重新加载网站的技术。不同之处在于XmlHttpRequest(通常称为AJAX)遵循请求 - 响应模型(客户端发出请求,服务器应答),而WebSockets使用双向通道,客户端和服务器都可以随时发送消息。
答案 1 :(得分:0)
Express.js可以做很多事情,但它作为node.js网络服务器的速度对我来说是最好的帮助。
当我创建一个Angular应用程序(通常使用Yeoman构建)时,我首先安装一个快速应用程序并运行Yeoman的角度生成器,然后编辑app.js以删除视图/路由引用并提供/在Grunt测试并缩小所有内容后,yeoman创建的dist文件夹。
通过这种方式,我到达use Angular as a full-fledged MVC,包括路由。我没有使用具有此配置的websockets,或许我想要数据库(MongoDB或任何其他)通信和/或数据索引 - 对非关系数据库尤其有用。