-1
socket.io에 문제가 있습니다. 내 코드가 특정 경로에 값을 표시하지 않습니다. '/'이 경로에서는 정상적으로 작동하지만 전송 버튼을 클릭하면 라우트가 '/ process_post'로 변경되어 sock.io에서 방출 된 값을 잡을 수 없습니다. 문제 해결을 도와주세요. 여기에 내 코드를 붙여 넣습니다. server.js socket.io 및 express-nodejs가 내 보낸 값을 인쇄 할 수 없습니다.
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var bodyParser = require('body-parser');
var bodyParser = require('body-parser');
app.use(express.static('public'));
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.get('/index.htm', function (req, res) {
res.sendFile(__dirname + "/" + "index.htm");
})
app.post('/process_post', urlencodedParser, function (req, res) {
// Prepare output in JSON format
response = {
first_name:req.body.first_name,
last_name:req.body.last_name
};
console.log(response);
io.of('/process_post').on('connection', function(socket){
socket.emit('news', { hello: 'world' });
console.log('a user connected');
});
res.end(JSON.stringify(response));
})
server.listen(3000, function(){
console.log('listening on *:3000');
});
그리고 내 index.html 파일
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
</head>
<body>
<form action="/process_post" method="POST">
First Name: <input type="text" name="first_name"> <br>
Last Name: <input type="text" name="last_name">
<input type="submit" value="Submit">
</form>
<script>
var socket = io.connect('http://localhost:3000');
socket.on('news', function (data) {
console.log(data);
});
</script>
</body>
</html>
안녕하세요. 답장을 보내 주셔서 감사합니다. 하지만 여전히 작동하지 않습니다. – naik3