router.get('/', getData, (req, res) => {
res.render('index', {
titlePage: 'Index'
// или data или null
data: req.data
})
})
// middleware
function getData(req, res, next) {
req.data = null
if (!req.isAuthenticated()) return next()
// auth ok
const id = req.user.id
const sql = 'SELECT * FROM users WHERE steamid = ' + id + ' || vkontakteid = ' + id + ' || googleid = ' + id + ''
pool.query(sql, function(err, result) {
if(err) return next()
req.data = result
next()
})
}
// reducer
export const NewProject = (state = initialState, action) => {
console.log(action.type, action.payload) // досюда доходит новый name?
switch (action.type) {
import { updateName } from '../../actions/updateName';
const handleChange = (e) => {
.....
// тут ты вызываешь оригинальную функцию actions/updateName
// а не ту которую привязал в mapDispatchToProps
// updateName(newName);
// попробуй
props.updateName(newName);
};
SELECT * FROM posts
ORDER BY id DESC -- сортировать по айди (правильнее наверно по дате добавления)
LIMIT 10
arr[0].map(n => arr[1].map(nn => nn * n))
result = []
for (let n of arr[0]) {
const subArr = []
for (let nn of arr[1]) {
subArr.push(n * nn)
}
result.push(subArr)
}
db.collection.aggregate([
{
'$addFields': { // новое поле nums
'nums': {
'$concatArrays': [ // соберем из foo bar
'$foo', [ '$bar' ]
]
}
}
}, {
'$project': { // только оно нам нужно
'nums': 1
}
}, {
'$unwind': { // ВСЕ номера
'path': '$nums'
}
}, {
'$match': { // уберем пустые строки и null и прочий мусор
'nums': {
'$type': 'number'
}
}
}, {
'$group': { // addToSet то есть только уникальные
'_id': null,
'nums': {
'$addToSet': '$nums'
}
}
}, { // здесь можно остановиться
'$unwind': { // дальше только чтобы отсортировать, потому что сет не будет отсортирован
'path': '$nums'
}
}, {
'$sort': {
'nums': 1
}
}, {
'$group': {
'_id': null,
'nums': {
'$push': '$nums'
}
}
}
])
// и не так
{
"myfunc": function() { //My code }
}
// а так
{
_id: "myfunc",
value : function(x) { return x; }
}
"views": [
{
date: '23072020-11', // а еще лучше в формате Date, а не строкой
count: 1
}
]
analytics.update_one(
{ article_id: a_id, 'views.date': '23072020-11' }, // тогда было бы несложно получить объект
{ $inc: {
'views.$.count': 1 // и как-то так получилось бы
}
}
)
data[1] хранит в себе значение поля login
const bodyParser = require("body-parser");
const app = express()
// надо же подключить к аппу
// Body parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));