router.post('/demo', jwt({ secret: process.env.SECRET }),Authentication.secret)
exports.secret = function (req, res) {
User.findById(req.user.sub, function (err, user) {
// добавлю еще маленько хорошей практики обработки ошибок:
if (err) {
console.log('ERROR')
res.send('ERROR')
return;
}
res.send({
eee: req.user,
hi: 'SECRET test authorization of registered user'
})
})
}
var locale = i18n.getLocale();
Article.find({}, {
['title.' + locale]: 1,
['content.' + locale]: 1
})
var locale = i18n.getLocale();
Article.find().sort('- created').populate('user', 'displayName').exec(function (err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
articles.forEach(article => {
article.title = article.title[locale];
article.content = article.content[locale];
});
res.json(articles);
}
});
var http = require('http');
var ipTables = {};
var server = http.createServer((req, res) => {
//Ваш обработчик запроса или express/connect вместо него
});
server.on('connection', socket => {
var ip = socket.address().address;
var time = Date.now();
if(ip in ipTables) {
if(time - ipTables[ip].time > 3000) {
ipTables[ip] = {
count : 1,
time
};
return;
}
ipTables[ip].count++;
ipTables[ip].time = time;
if(ipTables[ip].count > 100) {
socket.end('HTTP/1.1 429 Too Many Requests\n\n');
socket.destroy(); //Обрываем соеденение, так как ip ломится слишком часто
}
return;
}
ipTables[ip] = {
count : 1,
time
};
});
server.listen(80);