Ответ 1
Скажите, что это схема документа
'use strict';
import mongoose from 'mongoose';
var MessageSchema = new mongoose.Schema({
toid: String,
fromid: String,
toname: String,
fromname: String,
content: String,
date: { type: Date, default: Date.now }
});
export default mongoose.model('Message', MessageSchema);
И вот код базы данных, где вы меняете содержимое документа
import {Router} from 'express';
var router = new Router();
router.post('/create/:id', function(req, res){
return Message.create(req.body)
.then(respondWithResultAndEmitAnEvent(res, 201))
.catch(handleError(res));
});
Итак, эта функция replyWithResultAndEmitAnEvent выглядит примерно так: так как название подсказывает, где даже пользователь POST передает данные на сервер (скажем, на url xyz.com/api/create/:id), сервер выдаст событие, которое может быть захвачено другими клиентами.
function respondWithResultAndEmitAnEvent(res, statusCode) {
statusCode = statusCode || 200;
return function(entity) {
if (entity) {
socket.emit('message_added', entity);
res.status(statusCode).json(entity);
}
};
}
На стороне клиента вы можете прослушать это событие "message_added" и обновить его.
socket.on('message_added', function ( data ) {
console.log(data);
//update the client with new data;
});