Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js sequelize数据库错误,无错误消息_Node.js_Postgresql_Express_Sequelize.js - Fatal编程技术网

Node.js sequelize数据库错误,无错误消息

Node.js sequelize数据库错误,无错误消息,node.js,postgresql,express,sequelize.js,Node.js,Postgresql,Express,Sequelize.js,这是我第一次使用PostgreSQL,我正在为PostgreSQL、expressjs和nodejs创建一个使用sequelize的REST API。 我创建了一个用户,每个用户都有许多包裹。我现在正在创建一个属于使用userId作为参考的用户的包。我一直收到数据库sequelize错误,但没有任何消息。它的例行程序是“checkInsertTarget” 错误消息 { "name": "SequelizeDatabaseError", "parent": { "

这是我第一次使用PostgreSQL,我正在为PostgreSQL、expressjs和nodejs创建一个使用sequelize的REST API。
我创建了一个用户,每个用户都有许多包裹。我现在正在创建一个属于使用userId作为参考的用户的包。我一直收到数据库sequelize错误,但没有任何消息。它的例行程序是“checkInsertTarget”

错误消息

{
    "name": "SequelizeDatabaseError",
    "parent": {
        "name": "error",
        "length": 190,
        "severity": "ERROR",
        "code": "42703",
        "position": "48",
        "file": "d:\\pginstaller.auto\\postgres.windows-x64\\src\\backend\\parser\\parse_target.c",
        "line": "1033",
        "routine": "checkInsertTargets",
        "sql": "INSERT INTO \"Parcels\" (\"id\",\"name\",\"delivered\",\"presentLoc\",\"destination\",\"description\",\"createdAt\",\"updatedAt\",\"userId\") VALUES (DEFAULT,'Shoe',false,'Onitsha','ESUT','black shoe, size 34','2018-11-25 15:48:13.100 +00:00','2018-11-25 15:48:13.100 +00:00','3') RETURNING *;"
    },
    "original": {
        "name": "error",
        "length": 190,
        "severity": "ERROR",
        "code": "42703",
        "position": "48",
        "file": "d:\\pginstaller.auto\\postgres.windows-x64\\src\\backend\\parser\\parse_target.c",
        "line": "1033",
        "routine": "checkInsertTargets",
        "sql": "INSERT INTO \"Parcels\" (\"id\",\"name\",\"delivered\",\"presentLoc\",\"destination\",\"description\",\"createdAt\",\"updatedAt\",\"userId\") VALUES (DEFAULT,'Shoe',false,'Onitsha','ESUT','black shoe, size 34','2018-11-25 15:48:13.100 +00:00','2018-11-25 15:48:13.100 +00:00','3') RETURNING *;"
    },
    "sql": "INSERT INTO \"Parcels\" (\"id\",\"name\",\"delivered\",\"presentLoc\",\"destination\",\"description\",\"createdAt\",\"updatedAt\",\"userId\") VALUES (DEFAULT,'Shoe',false,'Onitsha','ESUT','black shoe, size 34','2018-11-25 15:48:13.100 +00:00','2018-11-25 15:48:13.100 +00:00','3') RETURNING *;"
}
 'use strict';
    module.exports = {
      up: (queryInterface, Sequelize) => {
        return queryInterface.createTable('Parcels', {
          id: {
            allowNull: false,
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
          },
          name: {
            type: Sequelize.STRING
          },
          delivered: {
            type: Sequelize.BOOLEAN
          },
          presentLoc: {
            type: Sequelize.STRING
          },
          destination: {
            type: Sequelize.STRING
          },
          description: {
            type: Sequelize.STRING
          },
          createdAt: {
            allowNull: false,
            type: Sequelize.DATE
          },
          updatedAt: {
            allowNull: false,
            type: Sequelize.DATE
          },
          userId: {
            type: Sequelize.INTEGER,
            onDelete: 'CASCADE',
            references: {
              model: 'Users',
              key: 'id',
              as: 'userId',
            }
          }
        });
      },
      down: (queryInterface, Sequelize) => {
        return queryInterface.dropTable('Parcels');
      }
    };
地块迁移代码

{
    "name": "SequelizeDatabaseError",
    "parent": {
        "name": "error",
        "length": 190,
        "severity": "ERROR",
        "code": "42703",
        "position": "48",
        "file": "d:\\pginstaller.auto\\postgres.windows-x64\\src\\backend\\parser\\parse_target.c",
        "line": "1033",
        "routine": "checkInsertTargets",
        "sql": "INSERT INTO \"Parcels\" (\"id\",\"name\",\"delivered\",\"presentLoc\",\"destination\",\"description\",\"createdAt\",\"updatedAt\",\"userId\") VALUES (DEFAULT,'Shoe',false,'Onitsha','ESUT','black shoe, size 34','2018-11-25 15:48:13.100 +00:00','2018-11-25 15:48:13.100 +00:00','3') RETURNING *;"
    },
    "original": {
        "name": "error",
        "length": 190,
        "severity": "ERROR",
        "code": "42703",
        "position": "48",
        "file": "d:\\pginstaller.auto\\postgres.windows-x64\\src\\backend\\parser\\parse_target.c",
        "line": "1033",
        "routine": "checkInsertTargets",
        "sql": "INSERT INTO \"Parcels\" (\"id\",\"name\",\"delivered\",\"presentLoc\",\"destination\",\"description\",\"createdAt\",\"updatedAt\",\"userId\") VALUES (DEFAULT,'Shoe',false,'Onitsha','ESUT','black shoe, size 34','2018-11-25 15:48:13.100 +00:00','2018-11-25 15:48:13.100 +00:00','3') RETURNING *;"
    },
    "sql": "INSERT INTO \"Parcels\" (\"id\",\"name\",\"delivered\",\"presentLoc\",\"destination\",\"description\",\"createdAt\",\"updatedAt\",\"userId\") VALUES (DEFAULT,'Shoe',false,'Onitsha','ESUT','black shoe, size 34','2018-11-25 15:48:13.100 +00:00','2018-11-25 15:48:13.100 +00:00','3') RETURNING *;"
}
 'use strict';
    module.exports = {
      up: (queryInterface, Sequelize) => {
        return queryInterface.createTable('Parcels', {
          id: {
            allowNull: false,
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
          },
          name: {
            type: Sequelize.STRING
          },
          delivered: {
            type: Sequelize.BOOLEAN
          },
          presentLoc: {
            type: Sequelize.STRING
          },
          destination: {
            type: Sequelize.STRING
          },
          description: {
            type: Sequelize.STRING
          },
          createdAt: {
            allowNull: false,
            type: Sequelize.DATE
          },
          updatedAt: {
            allowNull: false,
            type: Sequelize.DATE
          },
          userId: {
            type: Sequelize.INTEGER,
            onDelete: 'CASCADE',
            references: {
              model: 'Users',
              key: 'id',
              as: 'userId',
            }
          }
        });
      },
      down: (queryInterface, Sequelize) => {
        return queryInterface.dropTable('Parcels');
      }
    };
包裹型号代码

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Parcel = sequelize.define('Parcel', {
    name: {
      type: DataTypes.STRING,
      allowNull: false
    },
    delivered: {
      type: DataTypes.BOOLEAN,
      defaultValue: false
    },
    presentLoc: {
      type: DataTypes.STRING,
      allowNull: false
    },
    destination: {
      type: DataTypes.STRING,
      allowNull: false
    },
    description: DataTypes.STRING,
  }, {});

  Parcel.associate = (models) => {
    Parcel.belongsTo(models.User, {
      foreignKey: 'userId',
      onDelete: 'CASCADE'
    })
  };
  return Parcel;
};
包裹控制器

const Parcel = require('../models').Parcel;
const joiSchema = require('../joischema/parcelSchema');
const validator = require('../joischema/validator');

module.exports = {
    create(req, res) {
        const data = {
            name: req.body.name,
            description: req.body.description,
            destination: req.body.destination,
            presentLoc: req.body.presentLoc,
            userId: req.params.userId,
        };
        const valid = validator.isValid(req, res, joiSchema, data);
        if (valid != null){
            res.status(500).send(valid);
        }else{
            return Parcel
                .create(data)
                .then(parcel => res.status(201).send(parcel))
                .catch(error => res.status(400).send(error));
            }
    }

我检查了数据库,看到了一个我认为已经删除的专栏。我必须运行
sequelize db:migrate:undo
,然后再次运行
sequelize db:migrate
,以合并我的更改,即删除该列

你能手动检查你的数据库吗?错误代码42703表示“未定义列”。检查数据库并验证这些列是否都存在。谢谢。我检查了数据库,发现了一个我认为已经删除的列。我必须再次运行db:migrate以合并我的更改