node.js - 无法通过提供 req.body 创建模型

标签 node.js sequelize.js

我已经创建了一个用户模型并将其导出到 Controller 中,但是在 .create() 函数期间似乎无法正常工作。显示的错误是 TypeError: userModel.create 不是函数,它应该已经创建了表。

'use strict';


module.exports = function(sequelize, DataTypes) {
    const User = sequelize.define('user', {
        email: {
            type:  DataTypes.STRING,
            defaultValue:'',
            allowNull:false,
            validate: {
              notNull: true,
            }
          },
          name:{
              type:DataTypes.STRING,
              defaultValue:'',
              allowNull:true
          },
          city:{
              type:DataTypes.STRING,
              defaultValue:'',
              allowNull:true
          }
      },
      {
        freezeTableName: true,
      }
    );


    return User;
};


'use strict';


module.exports = function(sequelize, DataTypes) {
    const User = sequelize.define('user', {
        email: {
            type:  DataTypes.STRING,
            defaultValue:'',
            allowNull:false,
            validate: {
              notNull: true,
            }
          },
          name:{
              type:DataTypes.STRING,
              defaultValue:'',
              allowNull:true
          },
          city:{
              type:DataTypes.STRING,
              defaultValue:'',
              allowNull:true
          }
      },
      {
        freezeTableName: true,
      }
    );

    return User;
};

我也尝试过 const userModel = require('../../../models/user').User 但没有运气 以下是所提供模型的用户 Controller

"use strict";

const userModel = require('../../../models/user')

saveUserProfile(req, res) {

    userModel.create(req.body).then(user => {
        console.log("User Data", user);
        res.send({ data: user })
    });

}

module.exports = new user();

最佳答案

您的代码正在导出函数,而不是User对象。因此,您需要使用 Controller 内的依赖项来调用该函数,以便调用 userModel.create

我假设您的 Controller 了解 seqeulizeDataTypes,否则您需要导入它们并传递它们,或者直接在您的模型导入它们。

依赖注入(inject)(某种程度上)

使用下面的 require 语句并从 Controller 注入(inject) sequelizeDataTypes

const userModel = require('../../../models/user')(sequelize, DataTypes).User

关于node.js - 无法通过提供 req.body 创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56871134/

相关文章:

javascript - 如何为 Firebase 实现 Node.Js 服务器端事件监听器?

node.js - 我怎样才能获得一个角色的成员,其最高角色是该角色

javascript - Mac OSx 使用 sh 将文本插入到创建的文件中

node.js - pgAdmin 中存在 Sequelize 关联,但它在查询期间一直在寻找未知列

node.js - Sequelize - 尝试使用 'include' 获取相关对象的belongsToMany 关系

node.js - 尝试以多对多关系创建一个实例和多个相关实例

javascript - Node.js 服务器 "404 not found"消息到 404.html 页面

angularjs - 如何获取元数据标记中的 Controller 值?

sequelize.js - 如何在 sequelize 中创建 hasMany 关联

mysql - Sequelize 或 MySql 创建额外的表,EER 图中缺少表连接