我试图使用Node.js和Sequelize (MySQL)创建一个API。API有许多模型和关联。我做完模特儿就迁移了。现在我正在创建服务文件,当我向登录路由发出请求时,我会遇到这个错误。我试过很多东西,也读过很多关于这个问题的指南。但我仍然拥有它。
(打印检查!)-(正确导入的模块)
你能给我一个解决办法吗?我提前感谢你!
误差
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
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
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
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
"development": {
"username": "xxxx",
"password": xxxx,
"database": "nameofthegamegoeshere",
"host": "xxx.x.x.x",
"dialect": "mysql"
}
发布于 2022-08-23 12:06:27
db.user.findOne错误出现在这里,那么db.user真的到达数据库了吗?我认为使用导入序列作为**const user = require('../models').user**
,然后使用**const user = require('../models').user**
https://stackoverflow.com/questions/73432044
复制相似问题