node.js - Sequelize findAll 方法不返回数据库中的条目

标签 node.js sequelize.js

我已将我的应用程序连接到现有数据库。数据库表当前有 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;

[这是目前的类(class)表][1]
[1]:/image/2KkK6.png

最佳答案

我猜这是 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;
如果运行后问题仍然存在,请检查您的配置是否指向正确的数据库。
用于检查这是否是问题。
  • 更改您的配置以指向现有数据库
  • 运行代码
  • 更改您的配置以指向具有不同架构的本地数据库
  • 执行 Sequelize 同步
  • 运行代码

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

    关于node.js - Sequelize findAll 方法不返回数据库中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65589446/

    相关文章:

    javascript - 有没有办法在 : $or clause with sequelize? 中包含数组

    javascript - Nodejs 文件的异步和同步读写——什么时候使用哪个?

    sequelize.js - 如果随机值不唯一,是否 Sequelize 唯一约束重试?

    node.js - 在 sequelize 中定义自定义验证

    javascript - MySql 序列化架构

    javascript - 如何使用回调函数在 Node js 中返回 api 响应

    node.js - 如何在vscode调试器中调试多个 Node 项目?

    c++ - NodeJS c++ 插件性能

    node.js - 如何使用 sequelize 删除唯一选项

    javascript - 无法从单个文件导出多个 Sequelize 模型