addProject не является функцией (Sequelize) - PullRequest
0 голосов
/ 17 июня 2020

В моем приложении я установил связь между таблицами User и Project. используя этот код:

User.belongsToMany(Project, {
    through: "users_projects"
});
Project.belongsToMany(User, {
    through: "users_projects"
});

Когда я делаю простой почтовый запрос, я получаю следующую ошибку:

currentUser.addProject не является функцией

app.post("/project", async (req, res, next) => {
    try {
        const project = await Project.findOrCreate({
            where: {
                name: req.body.name,
                content: req.body.content
            }
        });
        const currentUser = await User.findAll({
            where: { id: req.body.userId }
        });
        console.log(currentUser);

        await currentUser.addProject(project[0]);
        res.json(project[0]);
    } catch (error) {
        next(error);
    }
});

Что могло вызвать эту проблему?

1 Ответ

2 голосов
/ 17 июня 2020

findAll возвращает массив, поэтому ваш код должен быть

await currentUser[0].addProject(project[0])

Однако, если вы запрашиваете с помощью id, вы можете использовать findByPk для получения объекта.

const currentUser = await User.findByPk(req.body.userId);
await currentUser.addProject(project[0])
...