gpt4 book ai didi

javascript - 通过socket.io将Mongo连接传递给JQuery代码?

转载 作者:行者123 更新时间:2023-12-02 18:09:08 25 4
gpt4 key购买 nike

我正在尝试在我的 Node.js Web 应用程序中创建全局 MongoDB 连接,如下所示:

var MongoClient = require('mongodb').MongoClient;
var mconn = null;

MongoClient.connect('mongodb://myHost:27017/users', function(err, udb) { //open connection to MongoDB db
if (!err){
mconn = udb;
}
else
console.error("Could not connect to sql: ", err);
});

然后,我想通过“socket.emit”事件传递此连接,如下所示:

io.sockets.on('connection', function(socket) {

socket.on('updates', function(PEMSID){
gps_helper.get_gps(PEMSID, conn, function(data){ //make initial query to GPS table for marker coordinates
socket.emit('message', {message: data, mongoConnection: mconn});
});
intervalID = setInterval(function(){
gps_helper.get_gps(PEMSID, conn, function(data){ //query GPS table for marker coordinates on an interval
socket.emit('message', {message: data, mongoConnection: mconn});
});
}, 30000);
});

这似乎不起作用,“mongoConnection”值在另一端为空。可以这样发送吗?

最佳答案

这是不可能的:您通常无法序列化并因此传输不透明的数据类型,例如网络连接或文件句柄。

如果可能的话请考虑安全风险:恶意客户端将完全访问您的数据库。

您将必须创建某种接口(interface),您的客户端代码将某些消息发送到服务器,服务器执行适当的数据库操作并发回结果(再次确保您不要这样做接口(interface)太通用,以至于恶意客户端代码可以对您的数据库执行随机查询)。

关于javascript - 通过socket.io将Mongo连接传递给JQuery代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844251/

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