MessageModel.find({
room: roomId,
hideForUsers: { $nin: [ UserId ] }
})
функционал удаление сообщений из комнаты с возможностью удалить свое сообщение для самого себя или для всех юзеров в комнате
if (process.env.NODE_ENV === 'production') {
// Set static folder
app.use(express.static('client/build')); // это собранный проект реакт и его "public"
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
// это наверно неактуально, но так собирается правильный путь через path.resolve
});
}
fetch('/api/getmore?skip=' + articlesLoaded).then(.....)
const newArticles = await Article.find({}).limit(10).skip(req.query.articlesLoaded)
order: [{
product: ObjectId,
quantity: Number
}]
class Express {
response = {}
middles = []
use = func => this.middles.push(func)
get = () => {
this.middles.forEach(func => func(this.response))
console.log('RESPONSE NOW: ',this.response)
}
}
app = new Express()
app.get()
// response: {}
function addBla(res) { res.bla = 17 }
// миддлвар добавляет какое-то свойство в response от сервера
app.use(addBla)
app.get()
// response: {bla: 17}
let lastRequested = new Date()
if (new Date() - lastRequested > 1000 * 60 * 30) { // 1000 мс * 60 сек * 30 мин
lastRequested = new Date()
// тут запрос
//
// а еще лучше обновить lastRequested = new Date()
// когда запрос вернется успешно
// чтобы в случае провала его можно было повторить быстрее чем через полчаса
}
if (req.cookies.mySuperCookie === 'valid') {
const apiResults = await fetch('./api/mySuperApi', {method: 'post'} )
.....
return ..
}
const baseUrl = req ? `${req.protocol}://${req.get('Host')}` : '';
const response = await fetch(baseUrl + '/posts');