节点关系.js/快速/连接/Socket.io

Relationship of node.js / Express / Connect / Socket.io

本文关键字:Socket io 连接 快速 js 节点 关系      更新时间:2023-09-26

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

我知道"快递"只是在"连接"中添加一堆功能,但它真正有什么用呢?比方说,我希望我所有的HTTP东西都针对"Apache"服务器做,并且只对node做一些部分的事情.js(如WebSocket连接,CouchDB等)。

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

据我所知,Socket.IO 也处理HTTP请求作为后备,那么使用 Socket.IO 来满足这些需求就足够了吗?

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

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

  • HTTP 服务器
  • 网址路由
  • 请求参数
  • 会话

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

如果您只想通过 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);
    });
});

如果你想在更复杂的应用程序中使用 Socket.io,提供页面和API,你可以(必须?)将其与Express集成(请参阅如何使用)

嗨,

我已经使用 Expressjs 一段时间了,发现它对它默认提供的 Jade 模板引擎特别有用。Jade是一种新的模板语言,虽然我承认需要一些时间来熟悉它,但它非常有用。您可以编写条件,mixin,将变量传递给页面,使用部分等。它只是使客户端html变得非常简单。此外,expressjs设置了您的视图,javascript,样式表目录结构...如果遵循正确,捕获响应并呈现 html 页面只需几行代码即可。如上所述,http 中间件更容易实现。