4

我正在尝试学习 HTML5/Node.js/Express/MongoDB/AngularJS/Websocket 的东西,这似乎让每个人都兴奋不已。

作为一个轻微的适得其反,我实际上很难在每种技术的实际作用上画线(尤其是使用 ejs 作为模板引擎)。Javascript 和 HTML 无处不在!

特别是,我在分离websockets(或类似socket.io)和AngularJS提供的服务时遇到了麻烦。他们似乎都试图在不必重新发送整个 HTML 页面的情况下提供活力。

它们是相互替代的吗?还是它们有不同的用途?

此外,这两种技术似乎都朝着绕过 Express 路由的单页 Web 应用程序发展。那么,Express 在使用 Websockets/AngularJS 时利用了什么?似乎 Express 提供的传统路由被替换为仅在 AngularJS 中更改单页中的视图

4

2 回答 2

7

AngularJS 是一个 javascript 库,它可以做很多不同的事情。与 WebSockets 最密切相关的众多事物之一是原生 Javascript 特性 XmlHttpRequest 之上的层。

XmlHttpRequest 和 WebSockets 都是与服务器交换数据而无需重新加载网站的技术。不同之处在于 XmlHttpRequest(通常称为 AJAX)遵循请求-响应模型(客户端发出请求,服务器响应),而 WebSockets 使用双向通道,客户端和服务器都可以随时发送消息。

于 2013-07-22T22:31:55.930 回答
0

Express.js 可以做很多事情,但它作为 node.js Web 服务器的速度对我来说是最大的好处。

当我制作一个 Angular 应用程序(通常使用Yeoman构建)时,我首先安装一个 express 应用程序并运行 Yeoman 的 angular-generator,然后编辑 app.js 以删除视图/路由引用并提供 yeoman 在 Grunt 之后创建的 /dist 文件夹测试并缩小一切。

通过这种方式,我可以将Angular 用作成熟的 MVC,包括路由。我没有使用这种配置的 websockets,但也许我想用于数据库(MongoDB 或任何其他)通信和/或数据索引 - 对于非关系数据库特别有用。

于 2013-09-19T23:39:24.933 回答