在控制台中它显示正在运行但在浏览器中它似乎无法连接。 索引代码如下:
console.log('Hiiiiiiiiiiiiiiiiiiii');
var io = require('socket.io');
var dot = require('dotenv').config();
var PORT = 3001;
var express = require('express');
var app = express();
var mysql = require('mysql')
var connection = mysql.createConnection({
host: 'localhost',
user: 'titan_bidwork',
password: 'bidwork@123#',
database: 'titan_bidwork'
})
connection.connect(function(err) {
if (err) throw err
console.log('You are now connected...')
})
http = require('http'),
server = http.createServer(function(req, res) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Request-Method', '*');
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
res.setHeader('Access-Control-Allow-Headers', '*');
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if (req.method === 'GET') {
res.writeHead(200, 'Hi, this is a very bad practice.', {
'Content-Type': 'text/html'
});
res.write('<h1>Node Server Running....</h1>');
res.end('<p>Some random text.</p>');
return;
}
});
io = io.listen(server)
io.on('connection', function(socket) {
socket.on('subscribe', function(room) {
console.log('joining room', room);
socket.join(room);
});
socket.on('message', function(msg) {
console.log('message--->>', msg);
console.log('msg----=>', msg["room"], msg["message"], msg["flag"]);
connection.query("INSERT INTO chat_room (room, message, flag) VALUES (?,?,?)", [msg['room'], msg['message'], msg['flag']], function(err, result) {
if (err) throw console.log(err)
})
io.to(msg.room).emit('message', msg);
});
socket.on('connect_failed', function(msg) {
console.log('connection failed', msg);
});
socket.on('send message', function(data) {
console.log('sending room post', data.room);
// io.to(room_name).emit('chat message', msg);
socket.broadcast.to(data.room).emit('conversation private post', {
message: data.message
});
});
});
app.post('/getMsgs', function(req, res) {
console.log(req, '----', res);
})
server.listen(PORT, function() {
console.log(server.address());
});
答案 0 :(得分:0)
线索出现在浏览器错误 - 连接超时中,您似乎只是在GET
个请求上向客户端发送响应。但是,很多时候客户端会首先发送内省请求,例如OPTIONS
/ HEAD
尝试将代码更改为
server = http.createServer(function(req, res) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Request-Method', '*');
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
res.setHeader('Access-Control-Allow-Headers', '*');
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
if (req.method === 'GET') {
res.writeHead(200, 'Hi, this is a very bad practice.', {
'Content-Type': 'text/html'
});
res.write('<h1>Node Server Running....</h1>');
res.write('<p>Some random text.</p>');
}
return res.end(); // ensure all requests return a response
});
FWIW你应该结帐Express,这将使你的生活更容易定位特定路线&amp;提供HTML等。