javascript - node.js/Express/Connect/Socket.io的关系

标签 javascript node.js express socket.io

我很困惑。我的主要问题是,什么时候使用纯 node.js,什么时候应该使用像“express”或“connect”这样的框架/MVC。

我知道“express”只是为“connect”添加了一堆功能,但它到底有什么用呢?比方说,我希望我所有的 HTTP 内容都针对“Apache”服务器执行,并且只使用 node.js 执行部分内容(例如 WebSocket 连接、CouchDB 等)。

在这种情况下出于某种原因使用“快速”或“连接”是否有意义?

据我所知,Socket.IO 还处理 HTTP 请求作为后备,那么使用 Socket.IO 是否足以满足这些需求?

使用 Express/Connect 的最大优势还有什么?

最佳答案

Express(或 Connect)是 HTTP 网络应用程序的应用程序框架。它是您的应用程序的入口点。它提供了一些非常常见的功能,例如:

  • HTTP 服务器
  • URL 路由
  • 请求参数
  • session

它还允许轻松使用其他功能(它们称为中间件),例如身份验证处理、模板。

如果你只想通过 SocketIO 实现发布/订阅服务,而不需要任何页面或其他 API,只需使用 Socket.io 库(S.io 主页示例):

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

如果您想在更复杂的应用程序、服务页面和 API 中使用 Socket.io,您可以(必须?)将它与 Express 集成(参见 How To Use)

关于javascript - node.js/Express/Connect/Socket.io的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174926/

相关文章:

javascript - 超简单的 Chrome 扩展不会将 EventListener 添加到按钮 onclick 事件

javascript - 从 textNode 获取固定的(带有省略号)textContent

javascript - 如何用 Sinon.JS 去除 google.maps 库?

javascript - append 新键并更改 for/if 循环中的值

javascript - forEach 中的内部 Firestore promise 在外部 promise 之后执行

node.js - Node - 请求 - 和 Google URL 缩短器

javascript - Object.create 和继承

node.js - NodeJS - Express 服务器、pm2 集群和 nginx 平衡 - 多线程

javascript - Node.js 和 Express Rest api 创建自定义字段路由

javascript - API调用和回调