【发布时间】:2021-01-29 10:10:50
【问题描述】:
我正在使用 node、sequelize、migration 和 mysql。我已经完成了 sequelize init 并在“模型”文件中定义了我的模型。我正在 server.js 文件中测试我的第一个端点,但是当我想运行帖子时,会出现此消息:
无法读取未定义的“创建”属性
我已经阅读了很多问题,并且假设通过下一个要求我可以访问我的模型。
Students.js(模型)
'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(控制器)
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(模型)
'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;
【问题讨论】:
标签: node.js express sequelize.js