router.post('/', async (ctx) => {
await passport.authenticate('local', async(err, user) => {
if(user === false){
await ctx.render('login', {title: 'Авторизация', message: 'Неверный логин или пароль'});
} else {
console.log(user);
const payload = {
id: user.id,
username: user.username,
};
const token = jwt.sign(payload, jwtsecret); //здесь создается JWT
ctx.body = {user: user.username, token: 'JWT ' + token};
console.log(ctx.body);
ctx.redirect('/user');
}
}) (ctx)
});
<div>
Рассчитаем стоимость обслуживания за 15 минут
</div>
div {
width: 250px;
height: 70px;
border-radius: 3px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
text-transform: uppercase;
font-size: 12px;
font-family: sans-serif;
padding: 5px 40px;
color: #fff;
background: #EBA146 no-repeat;
background-image:
radial-gradient(circle at center, #fff 0, #fff 46%, transparent 50%, transparent),
radial-gradient(circle at center, #fff 0, #fff 46%, transparent 50%, transparent),
radial-gradient(circle at center, #fff 0, #fff 46%, transparent 50%, transparent),
radial-gradient(circle at center, #fff 0, #fff 46%, transparent 50%, transparent),
linear-gradient(to right, #EBA146, #E17233);
background-position:
5px 5px,
calc(100% - 5px) 5px,
5px calc(100% - 5px),
calc(100% - 5px) calc(100% - 5px),
0 0;
background-size:
12px 12px,
12px 12px,
12px 12px,
12px 12px,
100% 100%;
}
{{template "content" .}}
{{template "content" .Categories}}
{{range .}}
<li>{{ .Name}}</li>
{{end}}
const user = {name: 'Lander', age: 33};
with(user){
console.log(`Меня зовут ${name} и мой возраст ${age}`);
}
function initialFunc(someNumber) {
console.log(`initialFunc`, someNumber);
}
function foo() { // Замыкание
const someRatio = 3.14; // Причина создания замыкания
return function(someNumber){ // Обёртка, которая возвращается из замыкания
console.log(`wrapper`, someNumber); // Причина создания обёртки
initialFunc(someNumber * someRatio); // Вызов обёрнутой функции
}
}
foo()(42);
При успехе метод search() возвращает индекс первого сопоставления с регулярным выражением внутри строки. В противном случае метод вернёт -1.
text.replace('старый текст', 'новый')