Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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
Javascript 续集不是插入行时自动递增id吗?_Javascript_Node.js_Orm_Sequelize.js - Fatal编程技术网

Javascript 续集不是插入行时自动递增id吗?

Javascript 续集不是插入行时自动递增id吗?,javascript,node.js,orm,sequelize.js,Javascript,Node.js,Orm,Sequelize.js,问题:目前,我可以使用SEQUELIZE和node api post方法在数据库表中插入一行 但是,如果我尝试使用postman发送一个新的项目对象,程序只会用id 1更新第一行 API.js router.post("/project", async (req, res, next) => { if (req.body) { // validate req.body then... const project = await ProjectService.save

问题:目前,我可以使用SEQUELIZE和node api post方法在数据库表中插入一行

但是,如果我尝试使用postman发送一个新的项目对象,程序只会用id 1更新第一行

API.js

router.post("/project", async (req, res, next) => {

  if (req.body) {
    // validate req.body then...

    const project = await ProjectService.saveProject(req.body);

    res.status(200).send(project);
  }
});
ProjectService.js

const { Projects, sequelize } = require("../models/ProjectModel");

class ProjectService {

  static async saveProject(project) {
    await sequelize.sync({ force: true }); // creates the Projects row (if doesn't exist in db)
    const projectBuilt = Projects.build({
      CompanyID: project.CompanyID,
      Name: project.Name,
      ContextID: project.ContextID,
      Latitude: project.Latitude,
      Longitude: project.Longitude,
      StateID: project.StateID,
      RegionID: project.RegionID,
      RadiusCovered: project.RadiusCovered,
      SubRegionID: project.SubRegionID,
      CommonWealth: project.CommonWealth
    });

    await projectBuilt.save();
    console.log("\n\n Project Saved to database!");

    return { project: projectBuilt };
  }
}

module.exports = ProjectService;
ProjectModel.js

// var database = require("./loaders/database"); /* Database depedency */

const { Sequelize, Model, DataTypes } = require("sequelize");

const sequelize = new Sequelize("new_rps", "root", "password", {
  dialect: "mysql",
  dialectOptions: {
    // Your mysql2 options here
  }
});

const Projects = sequelize.define(
  "Projects",
  {
    CompanyID: DataTypes.INTEGER,
    Name: DataTypes.TEXT,
    ContextID: DataTypes.TEXT,
    Latitude: DataTypes.INTEGER,
    Longitude: DataTypes.INTEGER,
    StateID: DataTypes.INTEGER,
    RegionID: DataTypes.INTEGER,
    RadiusCovered: DataTypes.INTEGER,
    SubRegionID: DataTypes.INTEGER,
    CommonWealth: DataTypes.INTEGER
  },
  {
    tableName: "Projects"
  }
);

module.exports = {
  Projects,
  sequelize
};
我想要的是:添加新行,而不是更新id为1的第一行。在数据库中,我在表上也有自动增量供参考!有什么想法吗?

更新的型号仍不工作

const Projects = sequelize.define(
  "Projects",
  {
    ID: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true
    },
    CompanyID: DataTypes.INTEGER,
    Name: DataTypes.TEXT,
    ContextID: DataTypes.TEXT,
    Latitude: DataTypes.INTEGER,
    Longitude: DataTypes.INTEGER,
    StateID: DataTypes.INTEGER,
    RegionID: DataTypes.INTEGER,
    RadiusCovered: DataTypes.INTEGER,
    SubRegionID: DataTypes.INTEGER,
    CommonWealth: DataTypes.INTEGER
  },
  {
    tableName: "Projects"
  }
);

使用以下选项将id列添加到模型定义中。
通过这种方式,sequelize将知道如何生成插入行的id

id:{
类型:DataTypes.INTEGER,
自动递增:真,
primaryKey:对
}

我已经这么做了,运气不好。请检查问题部分的更新模型。有什么想法吗?请帮忙/呵呵。问题是我注释掉了这一行,它可以工作://wait sequelize.sync({force:true});//创建项目行(如果数据库中不存在)