이 문서 스키마
'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));
});
그래서이 respondWithResultAndEmitAnEvent 기능 모습 뭔가 말 이름으로 사용자가 서버에 데이터를 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"를 청취하고 업데이트 할 수 있습니다. http://mongoosejs.com/docs/middleware.html
저장하고 삭제 된 레코드에서 스크립트를 실행할 수 있습니다
socket.on('message_added', function (data) {
console.log(data);
//update the client with new data;
});
MongoDB를 업데이트하는 프로세스를 제어 할 수 있습니까? – srquinn
@jibsales 예,하지만 다른 서버 및 수동으로 일을하는 방법을 알고 있지만 일들에 도움이 될 수 있습니다 궁금해했다 – Kanka
후크, 트리거, 청취자 등에 대한 네이티브 지원은 없지만 다음 SO 포스트를 확인하십시오. 가장 upvotes가 아닌 허용 대답) : http://stackoverflow.com/questions/9691316/how-to-listen-for-changes-to-a-mongodb-collection – srquinn