gpt4 book ai didi

javascript - 无法连接到 ejs 文件上的套接字、引用和 io 未定义错误

转载 作者:行者123 更新时间:2023-12-01 03:21:51 25 4
gpt4 key购买 nike

当我使用 socket.io 在客户端建立套接字连接时,我需要将数据发送到我的 express 应用程序。但是,当我尝试执行此操作时,我在以下 active.ejs 文件上收到引用错误。但是,我已成功连接到套接字,因为套接字 ID 已记录到我的控制台中的 index.js(这也是我需要发送 user_info 数据的地方)

这是客户端 html(ejs) 页面 - active.ejs

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Active</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="http://localhost:4000/socket.io/socket.io.js"></script>
</head>
<body>
<p>
Welcome,
<%= user_info.uri %>
</p>
// REFERENCE ERROR HERE
// changing {query: user_info} to just user_info doesn't help either
<% var socket = io.connect('http://localhost:4000/tune-in', {query: user_info}); %>
</body>
</html>

这就是user_info对象从controller.js传递到上面的html(ejs)文件active.ejs

  app.get('/tune-in', function(req, res){
res.render('active', {user_info: user_data});
});

我需要将 user_infoactive.ejs 发送到 index.js这是相关的 index.js

var server = app.listen(process.env.PORT || 4000);
console.log("Listening to port 4000...");
var io = socket(server);
io.on('connection', function(socket){
// The below log executes and displays a socket id.
console.log('Made socket connection', socket.id);
});

最佳答案

您无法以当前方式访问user_info。只需更改此行

<% var socket = io.connect('http://localhost:4000/tune-in', {query: user_info}); %> 

<% var socket = io.connect('http://localhost:4000/tune-in', {query: "<%= user_info %>"}); %>

关于javascript - 无法连接到 ejs 文件上的套接字、引用和 io 未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45134373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com