gpt4 book ai didi

node.js - 尝试发布到未定义的 mysql “Cannot read property ' create' 时出错”

转载 作者:行者123 更新时间:2023-12-03 22:33:32 25 4
gpt4 key购买 nike

我正在使用 node、sequelize、migration 和 mysql。我已经完成了 sequelize init 并在“模型”文件中定义了我的模型。我正在 server.js 文件中测试我的第一个端点,但是当我想运行帖子时,会出现以下消息:

Cannot read property 'create' of undefined


我已经阅读了很多问题,并且可以通过下一个要求访问我的模型。
Students.js(model)
'use strict';
module.exports = (sequelize, DataTypes) => {

const students = sequelize.define('students', {

dep_id:{
type:DataTypes.INTEGER,
allowNull:false,
},
name:{
type:DataTypes.STRING,
allowNull:false,
},
surname:{
type:DataTypes.STRING,
allowNull:false,
},
number:{
type:DataTypes.STRING,
unique:true,
allowNull:false,
},
phone:{
type:DataTypes.STRING,
unique:true,
allowNull:false,
},
mail:{
type:DataTypes.STRING,
unique:true,
allowNull:false,
} ,
password:{
type:DataTypes.STRING,
allowNull:false,
},
actives:{
type:DataTypes.INTEGER,
allowNull:false,
},
confirm_key:{
type:DataTypes.STRING,
allowNull:false,
},

}, {tableName:"students"
});


students.associate =(models) =>{
// define association here

};

return students;
};
AuthController.js( Controller )
const {Students} = require('../models/index');
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const authConfig= require('../../config/auth');
module.exports={
signIn(req,res)
{

},
signUp(req,res){
Students.create(req.body);
}

}

routes.js
const express = require('express');

const router = express.Router();

const AuthController=require('./controllers/AuthController');

router.get('/',(req,res)=>{
res.json({ message:'hello'});
});

router.post('/api/signin',AuthController.signIn)
router.post('/api/signup',AuthController.signUp)


module.exports=router;
index.js(model)
'use strict';
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);

const config = require('../../config/database');

const db = {};

let sequelize = new Sequelize(config.database, config.username, config.password, config);


fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});

Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

最佳答案

解决了

const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
返回的是学生。问题在于型号名称错误

关于node.js - 尝试发布到未定义的 mysql “Cannot read property ' create' 时出错”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64362871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com