У меня есть приложение, которое, я думаю, делает то, что вы хотите.Для начала вам нужно сохранить идентификатор того, кто вошел в ваш контекст.Для этого в моем файле src/index.js
есть следующий импорт:
import models, { sequelize } from './models';
import routes from './routes';
Затем, далее в этом же файле, у меня есть следующий код:
app.use(async (req, res, next) => {
req.context = {
models,
me: await models.User.findByLogin(username),
};
next();
});
Гдепеременная username
содержит имя текущего пользователя, вошедшего в систему.
Затем у меня есть конечная точка answer
, где пользователи могут публиковать ответы, что аналогично вашей конечной точке routine
.Маршрут публикации в моем случае выглядит следующим образом:
router.post('/', async (req, res) => {
const answer = await req.context.models.Answer.create({
text: req.body.text,
userId: req.context.me.id,
});
return res.send(answer);
});
Как видите, я публикую текст ответа и идентификатор пользователя одновременно.В вашем случае, я думаю, это будет выглядеть следующим образом:
router.post('/', async (req, res, next) => {
try {
const routine = await Routine.create({
name: req.body.Title,
userId: req.context.me.id
});
return res.json(routine);
} catch (err) {
next(err)
}
})
Обратите внимание, что вам придется настроить userId
в приведенном выше коде для любого имени поля, которое вы используете.