【问题标题】:Uncaught reference error require is not defined未捕获的引用错误要求未定义
【发布时间】:2019-05-14 22:08:30
【问题描述】:

我正在尝试使用 html 页面来测试与我的服务器的连接。

我的 server.js 没有问题

var http = require('http');
var url = require("url");
// Chargement de socket.io
var io = require('socket.io').listen(server);



var server = http.createServer(function(req, res) {
    var page = url.parse(req.url).pathname;

    // Quand un client se connecte, on le note dans la console


});

io.sockets.on('connection', function (socket) {
    console.log('Un client est connecté !');
});

server.listen(8080);

我的客户端应该是这里的html页面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Socket.io</title>
    </head>

    <body>
    <h1>Communication test with socket.io !</h1>


    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="http://localhost:8000/server_node/node_modules/socket.io/lib/socket.js"></script>
    <script>
        var socket = io.connect('http://localhost:8080');
    </script>
    </body>
</html>

问题是,当我加载 html 客户端时,我遇到了这个错误

socket.js:6 Uncaught ReferenceError: require is not defined 在 socket.js:6

我不是要实现一个真正的客户端,我只是想要一个简单的页面来做一些连接测试。

感谢您的帮助

编辑:问题已解决,这完全是因为我没有像 fs.readFile('./ClientTest.html', 'utf-8', function(error, content) { 那样从服务器加载 html 文件

因为这只是用来做一些测试,如果它可以这样工作就可以了;客户端将使用其他平台。

抱歉这个没用的问题:(

【问题讨论】:

  • 端口号是8080而不是8000

标签: node.js symfony


【解决方案1】:

您似乎正在客户端上导入 服务器端 库,您想要导入 client-side 之一。

根据文档,当 socket.io 在您可以通过导入的服务器上运行时,它会自动提供服务

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

【讨论】:

  • 我已经试过了,但是我有这个>> GET file:///socket.io/socket.io.js net::ERR_FILE_NOT_FOUND
  • @Minirock 你试过this answer吗?
  • @OliverNybo 是的,但它仍然无法正常工作。问题是 socket.io 文件夹中没有 socket.io.js 文件。
  • 你做了npm instsall socket.io --save吗? --save 很重要。
  • @Minirock 这会向我建议您在本地运行它(即您没有通过节点服务器提供 HTML)。你试过http://localhost:8000/socket.io/socket.io.js吗?
猜你喜欢
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2020-07-13
  • 2018-01-25
  • 2013-10-27
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
相关资源
最近更新 更多