Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用访问本地托管聊天应用程序的其他设备连接到MongoDB?_Javascript_Mongodb_Express_Socket.io_Localhost - Fatal编程技术网

Javascript 如何使用访问本地托管聊天应用程序的其他设备连接到MongoDB?

Javascript 如何使用访问本地托管聊天应用程序的其他设备连接到MongoDB?,javascript,mongodb,express,socket.io,localhost,Javascript,Mongodb,Express,Socket.io,Localhost,我有一个使用sockets、MongoDB和Express构建的简单聊天应用程序。 应用程序在我的本地计算机(localhost:4000)上托管时工作正常。 我能够连接到MongoDB并发送和接收消息。 问题:但当我使用PC IP地址(例如192.168.1.108:4000)在手机浏览器上打开应用程序时。我可以看到index.html页面,但无法发送和接收消息,也无法从mongodb加载以前的消息 //server.js var express=需要(“express”); var-app

我有一个使用sockets、MongoDB和Express构建的简单聊天应用程序。 应用程序在我的本地计算机(localhost:4000)上托管时工作正常。 我能够连接到MongoDB并发送和接收消息。 问题:但当我使用PC IP地址(例如192.168.1.108:4000)在手机浏览器上打开应用程序时。我可以看到index.html页面,但无法发送和接收消息,也无法从mongodb加载以前的消息

//server.js
var express=需要(“express”);
var-app=express();
var server=require('http')。createServer(应用程序);
连接=[];
app.use(express.static(uu dirname+/public));
server.listen(process.env.PORT | | 4000);
log('Server Running');
app.get('/',函数(req,res){
res.sendFile(uu dirname+'/index.html');
});
const mongo=require('mongodb')。MongoClient;
const client=require('socket.io').listen(server.sockets);
//连接到mongo
mongo.connect('mongodb://127.0.0.1/mongochat,函数(err,db){
如果(错误){
犯错误;
}
log('MongoDB connected…');
//连接到Socket.io
client.on('connection',函数(socket){
let chat=db.collection('chats');
//创建发送状态的函数
sendStatus=功能{
socket.emit('status',s);
}
//从mongo collection获取聊天记录
chat.find().limit(100).sort({u id:1}).toArray(函数(err,res){
如果(错误){
犯错误;
}
//发出信息
socket.emit('output',res);//每当我们必须从服务器传递到客户端(index.html)时,我们都会执行.emit()
});
//处理输入事件
socket.on('input',函数(数据){
让name=data.name;
let message=data.message;
//检查名称和消息
如果(名称=“”| |消息=“”){
//发送错误状态
sendStatus('请输入名称和消息');
}否则{
//插入消息
insert({name:name,message:message},function()){
client.emit('output',[data]);
//发送状态对象
发送状态({
消息:“已发送消息”,
清楚:是的
});
});
}
});
//处理清楚
socket.on('clear',函数(数据){
//从集合中删除所有聊天记录
删除({},函数(){
//发射清除
socket.emit('cleared');
});
});
});
});

蒙哥哈特
#消息{高度:300px;}
蒙哥哈特
清楚的


(功能(){ 变量元素=函数(id){ 返回文档.getElementById(id); } //获取元素 变量状态=元素(“状态”); var messages=元素('messages'); var textarea=元素('textarea'); var username=元素('username'); var clearBtn=元素('clear'); //设置默认状态 var statusDefault=status.textContent; var setStatus=功能{ //设定状态 status.textContent=s; 如果(s!==状态默认值){ var delay=setTimeout(函数(){ 设置状态(默认状态); }, 4000); } } //连接到socket.io var socket=io.connect('http://127.0.0.1:4000'); //检查连接 if(套接字!==未定义){ log('连接到套接字…'); //处理输出 socket.on('output',函数(数据){ //控制台日志(数据); if(数据长度){ 对于(var x=0;xvar socket = io.connect('http://127.0.0.1:4000');