我正在使用socket.io技术在Node.js中做一个项目。这是我在html中编写的代码:
<script type="text/javascript" src="data.json"></script>
<script type="text/javascript">
var mydata = JSON.parse(data);
var markers = mydata.map(function (location) {
return {
title: location.yer,
lat: location.lat,
lng: location.lng
};
});
$(document).ready(function () {
var socket = io.connect("http://localhost:1234");
socket.emit("test", mydata);
socket.on("test", function (data) {
//$("body").append("Name : " + data.value1 + ", Age : " + data.value2);
//$("body").append("<br>");
});
});
这是我在node.js端的server.js上编写的代码:
var io = require("socket.io").listen(server);
io.sockets.on('connection', function (socket) {
console.log("User Connected");
socket.on("test", function (data) {
console.log("Yer : " + data.value1 + ", Lat : " + data.value2 + ", Long : " + data.value3);
});
socket.on("disconnect", function () {
console.log("User Disconnected");
});
});
当我第一次打开html页面时,我从同一文件夹中的data.json文件中获取数据以及html。获取后,我可以将其映射到JavaScript并将其分配给mydata变量。我将此变量发送到Node.js的服务器端,并使用我在html中使用jQuery编写的代码。与Node.js的连接工作正常,但是当我将这个json数据发送到node.js时,当我打印发送到控制台的数据时,我看到消息&#34; Location:undefined,Lat:undefined,Long :undefined&#34;。我不明白我在哪里讨厌。你能救我吗?
答案 0 :(得分:0)
因此服务器websocket处理程序接收一个对象数组,但是您尝试将其解析为就像它是一个对象一样。试试这个,请:
socket.on("test", function (data) {
data.forEach(obj => {
console.log("Yer : " + obj.yer + ", Lat : " + obj.lat + ", Long : " + obj.lng);
})
});