Ich plane, eine Route zu erstellen, wo ein Benutzer einen anderen Benutzer als seinen/ihren Freund hinzufügen kann, so dass sie miteinander chatten können, sobald sie Freunde sind.Richtiger Weg, um eine Friend Route in node.js und mongoose hinzuzufügen?
Also im Grunde einmal Benutzer A eine Anfrage an Benutzer B gesendet hat, wird Benutzer B eine Live-Benachrichtigung über die Anforderung über socket.io
Das Problem ist im Moment bekommen, dass ich nicht mit meiner eigenen Lösung einfiel auf, wie das obige Szenario zu implementieren, von dem, was ich weiß, ich sollte zwei Routen GET
und POST
für Datenbankabfrage, einfügen, aktualisieren Mungo erstellen und löschen
Hier ist mein Code ich verwende
// GET route for getting the user's information -- Simple route
router.get('/users/:facebook_name', function(req, res) {
User.findOne(facebook_name, function(err, user) {
if (!user) {
res.json({message: "Couldn't find a user by that name"});
return;
}
res.json(user);
});
});
// POST route for adding a friend
router.post('/friendships/create/:facebook_name', ensureAuthenticated, function(req, res) {
// What should i put in this route to make the adding a friend feature works?
User.findOneAndUpdate(facebook_name, function(err, user) {
if (user) {
res.json({message: "You already send a friend request to that person"});
return;
}
// Send a live notification to the other user
socket.emit('sending request', {message: "added you as a friend"});
});
});
Benutzer Schema Code - Nicht wirklich sicher über diesen entweder
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
friends: [{ type: Schema.Types.ObjectId, ref: 'User'}],
facebook: {
id: String,
token: String,
// email: String,
displayName: String,
photo: String
}
});
// Should I even create this schema?
var FriendsRequest = new Schema({
madeBy: [{ type: Schema.Types.ObjectId, ref: 'User'}],
})
module.exports = mongoose.model('User', UserSchema);
module.exports = mongoose.model('FriendsRequest', FriendsRequest);
ich mit euch nicht ganz ehrlich bin, in der POST
Route, ich habe keine freaking Idee auf, wie die Logik schreiben , weil ich gerade jetzt wirklich verwirrt bin, wie der Benutzer B die Live-Anfrage erhalten wird? Soll ich dafür eine andere Route erstellen?
Dies ist mein Problem, wenn es darum geht, ein wenig komplexe Anwendungen zu erstellen, ich konnte einfach nicht eine gute Logik auf, wie man eine bestimmte Funktion, obwohl es ziemlich einfach aussieht. Ich stecke seit fast 4 Stunden in diesem Problem fest, stöbere und lese das Netz, aber ich glaube, dass SO der einzige Ort ist, an dem ich einen Hinweis finde, wie ich etwas tun kann.
Vielen Dank.
Möchten Sie einfach nur wissen, wofür Benutzer variabel stehen? Wie erstelle ich sie? – sinusGob
und wie akzeptiert der andere Benutzer die Anfrage des Freundes und speichert sie in der Datenbank? wird diese Frage als 50 Bounty setzen, wenn es berechtigt ist. Bitte setzen Sie mehr Details – sinusGob
Sehen Sie sich die aktualisierte Version der Frage, ich füge einige Datenbank-Datei – sinusGob