Node.js如何将链接标记解析为节点模块

How does Node.js resolve link tag to node modules

本文关键字:节点 模块 js 链接 Node      更新时间:2024-03-29

我正在学习在node-js中使用socket-io,我遇到了这个让我很头疼的例子http://socket.io/:客户端:

<script src="/socket.io/socket.io.js"></script>
...

我的问题是nodejs是如何解决这个src-url的?我从未将我的服务器配置为处理此url。下面是我的服务器代码片段。我从未将socket.io.js复制到任何公共/视图文件夹中。似乎有一些规则,节点可以直接从节点模块中提取js文件,比如magic。有人能解释一下这是怎么回事吗?

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);
  });
});
...
var app = express.createServer();
app.configure(function() {
    app.use(express.logger());
    app.use(express.bodyParser());
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    app.use(express.static(__dirname + '/public'));
    app.use(express.cookieParser());

Socket.io向服务器添加一个连接侦听器,该侦听器为响应该URL的客户端JS提供服务
请参阅文档。

要禁用此功能,请将browser client配置选项设置为false。