Для пользовательской коллекции вы можете иметь массив following[]
. Например, вы помещаете каждый идентификатор пользователя, которому они следуют, в массив, а затем удаляете его, когда отписываетесь от пользователя. Затем с помощью экспресс-обработки вы можете обработать почтовый запрос, отправленный внешним интерфейсом, с помощью экспресс. Конечно, вам нужно логическое выражение, чтобы сказать, как:
// To show the button saying "follow" or "unfollow"
var followingArray = [123414, 312456, 656465];
var following = false;
if (followingArray.indexOf(userid)) {
following = true;
} else {
following = false;
}
Очевидно, что это всего лишь концепция, и для получения идентификатора пользователя вам потребуется другой код из mongoose или обычный модуль mongodb. Это также решило бы, будет ли ссылка на почтовый запрос http://myapp.com/follow
или http://myapp.com/unfollow
. Основываясь на этих двух почтовых запросах, вы будете обрабатывать данные, такие как идентификатор пользователя, с помощью body-parser и выражать:
var bodyParser = require('body-parser');
const express = require('express');
const app = express();
const port = 8080
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
app.post('/follow', (req, res) => {
//handle data here for a request to follow someone
var userid = req.body.userid;
})
app.post('/unfollow', (req, res) => {
//handle data here for a request to unfollow someone
var userid = req.body.userid
})
app.listen(port, () => {
console.log(`Server running on ${port}`);
})
Тогда вы будете использовать эти данные с mongoose или модулем mongodb, чтобы удалить или добавить этот идентификатор пользователя из массива и изменить логическое значение following
на true или false. Затем, если вы хотите добавить другие функции, такие как список подписчиков или следующий список, вы можете использовать идентификатор пользователя для этого. Я не даю точный код, как это сделать, так как здесь задействовано много концепций. Я просто пытаюсь дать вам концепции, которые вы бы использовали при этом.