Mam zamiar utworzyć trasę, w której użytkownik może dodać innego użytkownika jako swojego znajomego, aby mogli rozmawiać ze sobą, gdy tylko będą przyjaciółmi.Właściwy sposób dodania trasy znajomego w pliku node.js i mangusta?
Więc w zasadzie raz Użytkownik A wysłał prośbę do użytkownika B, Użytkownik B dostanie żywo powiadomienie o żądaniu przez socket.io
Problem teraz jest to, że nie mogłem wymyślić własnego rozwiązania na sposób realizacji powyższego scenariusza, z tego co wiem, należy utworzyć dwie trasy GET
i POST
Używam mongoose dla zapytania do bazy danych, wstawiania, aktualizacji i usuwania
Oto mój kod
// 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"});
});
});
kod Schema użytkownik - Nie bardzo pewni tego jednego albo
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);
Nie jestem do końca szczery z wami, w trasie POST
, nie mam pojęcia, w jaki sposób niecodzienna napisać logikę , bo tak naprawdę teraz mylę się, w jaki sposób użytkownik B otrzyma powiadomienie na żywo? Czy powinienem stworzyć dla niego inną trasę?
To jest mój problem, jeśli chodzi o tworzenie nieco skomplikowanych aplikacji, po prostu nie mogłem wymyślić dobrej logiki, jak wykonać określoną funkcję, mimo że wygląda całkiem łatwo. Utknąłem w tym problemie przez prawie 4 godziny, przeglądając i czytając sieć, ale wierzę, że to jedyne miejsce, w którym mogę znaleźć wskazówkę, jak coś zrobić.
Dziękuję.
Po prostu chcesz wiedzieć, co oznacza zmienna użytkownika? jak je utworzyć? – sinusGob
i Jak drugi użytkownik akceptuje prośbę przyjaciela i zapisuje go w bazie danych? postawi to pytanie jako 50 nagród, gdy będzie się kwalifikowało. Proszę podać więcej szczegółów – sinusGob
Spójrz na zaktualizowaną wersję pytania, dodam plik bazy danych – sinusGob