#mysql #node.js #sequelize.js
#mysql #node.js #sequelize.js
Вопрос:
я использую nodejs mysql sequelize, пытаясь создать таблицу
сначала я создал модуль
const sequelize = require('../database/connection'); const bcryptjs = require('bcryptjs'); module.exports = sequelize.define('users', { id: { type: Sequelize.INTEGER, autoIncrement: true, allowNull: false, primaryKey: true }, name : Sequelize.STRING, emai: Sequelize.STRING, password: { type: Sequelize.TEXT, set: (val) =gt; { val ? bcryptjs.hashSync(val, 10) : undefined } } })
база данных создана
затем с помощью cmd я набрал
sequelize migration:create --name users
и в созданном файле миграции написал следующее
module.exports = { up: async (queryInterface, Sequelize) =gt; { return queryInterface.createTable("users", { id: { type: Sequelize.INTEGER, autoIncrement: true, allowNull: false, primaryKey: true }, name : Sequelize.STRING, emai: Sequelize.STRING, password: { type: Sequelize.TEXT, set: (val) =gt; { val ? bcryptjs.hashSync(val, 10) : undefined } } }) }, down: async (queryInterface, Sequelize) =gt; { return queryInterface.dropTable("users") } };
затем cmd sequelize db:migrate
и обновил phpmyadmin, и таблица создана
контроллер является
const jwt = require('jsonwebtoken'); const User = require('../models/user') exports.signUp = async (req, res) =gt; { try { console.log(req.body); let user = await User.findOne({where : {email : req.body.email}}) if (user) { return res.status(200).json({ msg: "Username already existed" }) } user = await User.create(req.body) let token = jwt.sign({ id: user.id }, process.env.TOKEN) return res.status(200).json({ user : user, token : token }) } catch (error) { res.status(404).json({ status: 'Error', msg: error.message }) } }
попытался использовать postman для создания нового пользователя с этими полями в теле
{ "name" : "yazan", "email" : "a", "password" : "123" }
и я получил это сообщение об ошибке
{ "status": "Error", "msg": "Unknown column 'createdAt' in 'field list'" }
с этим сообщением на cmd
Executing (default): INSERT INTO `users` (`id`,`name`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?,?);
примечание : я использую mysql из xampp
Комментарии:
1. я проверил таблицу в phpmyadmin и там нет столбцов (createdAt , updatedAt)