0
Express와 소켓 연결을 함께 연결하려고합니다. 나는 내가이 설정을 깔끔하게하고 있다고 생각하지만, 이것을하고 싶지는 않다.Express 및 NodeJS 내보내기와 함께 Socket.IO 사용
- 사용자가 새로운 방을 만든다. 백엔드 Express 서버에 대한 POST.
app.post()
은 모든 데이터베이스 연결을 처리하는 내보내기로 입력을 보냅니다.- 데이터베이스에 저장되면 소켓을 통해 모든 사람에게 새로운 회의실이 추가되었습니다.
소켓에서만 수행 할 수 있습니까? 예. 그러나 나는 그 삶에 관한 것이 아닙니다.
RoomRouter.js
exports.createRoom = (req, response) => {
new Room(req.body).save((err, room) => {
response.status(200).send(room);
});
};
는
/*
* Express setup is left out, because we don't need to focus on that.
* "app" is const app = express();
*/
const RoomRouter = require("./RoomRouter");
app.post("/room/create", RoomRouter.createRoom);
io.on("connection", (socket) => {
//I want to broadcast the room to everyone
//io.emit("newRoom", room);
});
익스프레스 부분은 잘 작동하고 POST 작동 app.js. 자, 어떻게 Socket.IO에 연결하면, 모든 사람들에게 새로운 방이 추가되었다는 것을 알릴 수 있습니까?
흠. 내가 원하는 것은 아닙니다. 'createRoom'은 이미'req, response'를 매개 변수로 취합니다. – MortenMoulder
네,하지만이 방법을 사용하면'io'를 매개 변수로 취한 다음 경로에서 직접'newRoom'을 출력 할 수 있습니다 :) – Sparw
오, 그래요. 모든 메소드에'io'를 파싱하는 대신, 어떻게 든 그것을 포함시키는 것이 낫지 않습니까? 어디 에나 포함될 수있는 서비스를 만드는 것처럼? – MortenMoulder