我需要roomId
(一个auto_increment
主键)来定位特定的房间以更新聊天信息。目前我的做法很愚蠢。
在createRoom.js
中,我使用用户输入的表单中的roomName
创建一个房间模型并找到其roomId
,然后将roomId
作为URL的参数:
var Room = require('../models/database').Room
exports.create = function (req, res) {
Room
.create({
room_name: req.body.roomName
})
.complete(function () {
Room
.find({where: {room_name: req.body.roomName}})
.success(function (room) {
res.redirect('rooms/videochat/' + req.body.roomName + '/' + room.room_id);
})
})
};
在
routes.js
文件中,我使用req.params.roomId
获取roomId
并将其传递给一个Jade视图文件,以便在视频聊天页面上显示:app.get('/rooms/videochat/:roomName/:roomId', function (req, res) {
res.render('videochat.jade', {roomName: req.params.roomName, roomId: req.params.roomId});
});
在客户端 JavaScript 中,我使用:
var roomId = $('#roomId span').text();
获取roomId
,然后使用socket.emit将其传回服务器端:
socket.emit('updateStartTime', roomId);