我正在尝试使用节点js和mongodb创建聊天应用程序。我正在寻找一个教程。我无法解决运行我的文件server.js时未定义状态套接字的错误。服务器Js中的代码是
var mongo = require('mongodb').MongoClient,
client = require('socket.io').listen(8080).sockets;
console.log(mongo);
mongo.connect('mongodb://@127.0.0.1/chat',function(err,db) {
if(err) throw err;
client.on('connection',function() {
//Wait for Input
socket.on('input',function(data) {
console.log(data);
});
});
});
当我想在输入上监听套接字时,会创建错误。当我尝试将套接字定义为。时
socket =io.connect('http://127.0.0.1:8080');
它再次给出错误陈述未定义。在nodejs上不是io全局吗?
请赐教我这个。
答案 0 :(得分:1)
如果您使用快递,请尝试以下操作。
var express = require('express'),
, app = express()
, server = require('http').Server(app)
, mongo = require('mongodb').MongoClient,
, io = require('socket.io')(server);
server.listen(3000, function() {
console.log("Server Running on port 3000");
});
mongo.connect('mongodb://@127.0.0.1/chat',function(err,db) {
io.sockets.once('connection', function(socket) {
io.sockets.emit('new-data', {
channel: 'stdout',
value: "My Data"
});
});
});
在view.html中
<html>
<head>
<script src="https://cdn.socket.io/socket.io-1.0.6.js"></script>
var socket = io.connect('http://localhost');
var streamer = $('#streamer');
socket.on('new-data', function(data) {
streamer.val(data.value);
});
</head>
<body>
<div id="streamer"> </div>
</body>
</html>