首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:无法读取未定义(读取'findAll') <nodejs>的属性

TypeError:无法读取未定义(读取'findAll') <nodejs>的属性
EN

Stack Overflow用户
提问于 2022-08-21 06:08:38
回答 2查看 587关注 0票数 1

我试图使用Node.js和Sequelize (MySQL)创建一个API。API有许多模型和关联。我做完模特儿就迁移了。现在我正在创建服务文件,当我向登录路由发出请求时,我会遇到这个错误。我试过很多东西,也读过很多关于这个问题的指南。但我仍然拥有它。

(打印检查!)-(正确导入的模块)

你能给我一个解决办法吗?我提前感谢你!

误差

代码语言:javascript
运行
复制
    const results = await db.user.findOne({where:{phoneNumber: body.phoneNumber}})
                                  ^

TypeError: Cannot read properties of undefined (reading 'findOne')
    at login (C:\Users\Ali\Desktop\Learning\Mafia-api\user\user.service.js:5:35)
    at Layer.handle [as handle_request] (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\route.js:144:13)
    at Route.dispatch (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\route.js:114:3)
    at Layer.handle [as handle_request] (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\index.js:284:15
    at Function.process_params (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\index.js:346:12)
    at next (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\index.js:280:10)
    at Function.handle (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\index.js:175:3)
    at router (C:\Users\Ali\Desktop\Learning\Mafia-api\node_modules\express\lib\router\index.js:47:12)
[nodemon] app crashed - waiting for file changes before starting...

模型: user.js

代码语言:javascript
运行
复制
    module.exports = async (sequelize, DataTypes) => {
    const user = await sequelize.define('users', {
        id: {
            type: DataTypes.INTEGER,
            allowNull: false,
            autoIncrement: true,
            primaryKey: true,
        },

        phoneNumber: {
            type: DataTypes.STRING(20),
            allowNull: false,
            unique: true
        },

        displayName: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: true
        }
    })

    user.association = model => {
        user.hasMany(model.currencyWallet);

        user.hasMany(model.userSetting);

    }
    return user
}

服务: user.service.js

代码语言:javascript
运行
复制
const db = require('../models');

async function login(req, res) {
    const body = req.body;
    const results = await db.user.findOne({where:{phoneNumber: body.phoneNumber}})
    res.json({
        success: 0,
        message: 'Results found!'
    })
}

module.exports = {
    login
}

Index.js

代码语言:javascript
运行
复制
const express = require('express');
const app = express();
const userRouter = require('./user/user.router');
const PORT = 5000 
const HOST = 'localhost'
const db = require('./models');

app.use(express.json());

app.use('/', userRouter);

db.sequelize.sync().then(() => {
    app.listen(PORT, () => console.log(`Server running on http://${HOST}:${PORT}`));
})

config.json

代码语言:javascript
运行
复制
  "development": {
    "username": "xxxx",
    "password": xxxx,
    "database": "nameofthegamegoeshere",
    "host": "xxx.x.x.x",
    "dialect": "mysql"
  }
EN

Stack Overflow用户

发布于 2022-08-23 12:06:27

db.user.findOne错误出现在这里,那么db.user真的到达数据库了吗?我认为使用导入序列作为**const user = require('../models').user**,然后使用**const user = require('../models').user**

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73432044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档