簡體   English   中英

User.create 不是 function 續集

[英]User.create not a function sequelize

我剛開始使用 express js。 我想在用戶表中插入數據庫。 我使用 sequelize model:generate 創建用戶 model。 就是這個

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Users', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      name: {
        type: Sequelize.STRING
      },
      email: {
        type: Sequelize.STRING
      },
      password: {
        type: Sequelize.STRING
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Users');
  }
};

這是生成的 model

'use strict';

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    name: DataTypes.STRING,
    username: DataTypes.STRING,
    email: DataTypes.STRING,
    password: DataTypes.STRING
  });
  User.associate = function(models) {
    // associations can be defined here


  };  

  return User;
};

然后我有一個 controller 我有一個注冊方法。

const Validator = require('validatorjs');
const bcrypt = require('bcrypt');
const privateKey = require('../config.json').secretKey;
const saltRounds = require('../config.json').saltRounds;
const User = require('../models/user');

exports.register = async (req, res, next) => {
    rules = {
        username: 'required|string|max:255|alpha_num',
        email: 'required|email',
        password: 'required|string|max:255',
        name: 'required',
    }

    const validation = new Validator(req.body, rules);

    if(validation.passes()){
        let password = await bcrypt.hash(req.body.password, saltRounds);        
        User.create({
            username: req.body.username,
            password: password,
            name: req.body.name,
            email: req.body.email,            
        }).then(response => {
            return res.status(200).json(response);
        }).catch(err => {
            return res.status(500).json(err);
        });
    }else{
        return res.status(422).json(validation.errors);
    }

}

但我收到一條錯誤消息,提示 User.create 不是 function。 是我的文件結構

請我需要幫助。 欣賞

當您使用 sequelize CLI sequelize-cli model:generate --name User生成模型時,您應該從models文件夾中的index.js文件中導入它們

const db = require('../models');
db.User.create({})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM