【问题标题】:Javascript/NodeJS/Express scope confusionJavascript/NodeJS/Express 范围混淆
【发布时间】:2023-03-09 12:23:01
【问题描述】:

我正在浏览这个存储库,注意到作者在app.js 中声明了一个变量(io):

/* Socket.io Communication */
var io = require('socket.io').listen(server);
io.sockets.on('connection', socket);

他在public/js/app.js 中再次引用了变量,但似乎根本没有像我通常预期的那样引用外部javascript 文件,所以我很惊讶这不会导致ReferenceError。

有人可以为我澄清一下这个例子是什么让这个对 io 的外部引用起作用吗?非常感谢。

【问题讨论】:

    标签: javascript node.js express reactjs


    【解决方案1】:

    public/js/app.js 是客户端 javascript,将在浏览器中运行。如果您查看 index.html,您会看到 socket.io 的客户端版本包含在底部,它定义了一个全局 io var。

    https://github.com/DanialK/ReactJS-Realtime-Chat/blob/master/public/index.html#L12

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 2015-10-04
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      相关资源
      最近更新 更多