【问题标题】:Sequelize findAll method not returning entries in the databaseSequelize findAll 方法不返回数据库中的条目
【发布时间】:2021-01-06 11:00:41
【问题描述】:

我已将我的应用程序连接到现有数据库。数据库表当前有 3 个条目,但是当我使用 findAll 查询模型时,只返回一个空数组。我不确定这是否与已经存在的数据库以及通过模型连接到它的数据库有关。我也在同步模型目录中索引文件中的所有文件。

//Courses Model for sequelize

const Sequelize = require('sequelize');

module.exports = (sequelize) => {
    class Courses extends Sequelize.Model{}

    Courses.init({
        id: {
            type: Sequelize.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },

        title: {
            type: Sequelize.STRING,
            allowNull: false
        },

        description: {
            type: Sequelize.TEXT,
            allowNull: false
        },

        estimatedTime: {
            type: Sequelize.STRING,
        },

        materialsNeeded: {
            type: Sequelize.STRING,
        },

        createdAt: {
            type: Sequelize.DATE,
            allowNull: false
        },

        updatedAt: {
            type: Sequelize.DATE,
            allowNull: false
        },

        userId: {
            type: Sequelize.INTEGER,
            references: { model: 'users', key: 'id' },
            onDelete: 'CASCADE',
            allowNull: false
        }
    }, {sequelize, modelName: 'courses'});
    
    Courses.associate = (models) => {
        models.courses.belongsTo(models.users, {foreignKey: "userId"});
    };

    return Courses
}

// Router with findAll query

const router = require('express').Router();
const db = require('../models/');



router.get('/', async(req, res) => {
    try {
        console.log(await db.courses.findAll());   
    } catch(err) {
        console.error(err);
    }
    
    res.json({msg: "None"})
});

module.exports = router;

[这是目前的课程表][1] [1]:https://i.stack.imgur.com/2KkK6.png

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    我猜这是 javascript 级别的问题。你不能使用这样的 await 语句。请先尝试一下。

    onst router = require('express').Router();
    const db = require('../models/');
    
    router.get('/', async (req, res) => {
        try {
            const courese = await db.courses.findAll()
    
            console.log(courses)
            res.send({ courses })
        } catch(err) {
            console.error(err);
        }
        
        res.json({msg: "None"})
    });
    
    module.exports = router;
    

    如果运行后问题仍然存在,请检查您的配置是否指向正确的数据库。

    用于检查是否有问题。

    1. 更改配置以指向现有数据库
    2. 运行代码
    3. 更改您的配置以指向具有不同架构的本地数据库
    4. 进行续集同步
    5. 运行代码

    通过这样做,您可以检查代码中的真正问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-02
      • 1970-01-01
      • 2019-11-20
      • 2018-12-15
      • 1970-01-01
      • 2020-10-07
      • 2021-03-21
      • 2020-04-08
      相关资源
      最近更新 更多