Pour une raison quelconque, la poussée de MongoDB fonctionne avec cette configurationmangouste pression ne marche pas travailler à l'intérieur socket.io appel
// Fixed params
story.title = 'Socketi';
story.lines.push ({ author: 'Khuram', text:'socket data'});
//Capture data from socket into schema
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('slog', function (data) {
console.log(data);
});
});
Mais placer la déclaration de poussée mangouste dans le doesnt appel socket.io travail
Comme donc:
// Fixed params
story.title = 'Socketi';
//Capture data from socket into schema
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('slog', function (data) {
story.lines.push ({ author: 'Khuram', text:data.my});
});
});
Juste à titre de référence: 'slog' fait référence à l'événement sur lequel je veux que mongoose se mette à jour. Im recevoir des données du client et je veux pousser les données d'événement de socket à mongodb chaque fois que cet événement est émis (c'est pourquoi je veux le placer dans l'appel socket.io)
Comment vérifiez-vous si 'story.lines.push' a fonctionné? Beaucoup de code manque ici. –
Je viens de coller une section du code pour le garder concis. J'ai tout le code pour le schéma ci-dessus. J'ai testé le story.push en dehors de l'appel socket.io et les données sont stockées avec succès dans MongoDB - Est-ce que cela répond à votre question? –
Vous avez probablement des problèmes de concurrence, mais il est impossible de le savoir sans voir le code complet. Essayez d'exécuter votre code, puis vérifiez la base de données via la console mongo. Appelles-tu '.save()' sur 'story'? –