【问题标题】:Sequalize won't create table but server is running without errorsSequelize 不创建表,但服务器正在运行且没有错误
【发布时间】:2021-05-22 07:46:46
【问题描述】:

这是我第一次使用 sequelize,在 PostgreSQL 中创建表时遇到了问题。服务器正在运行而没有任何错误,但似乎 sequelize 没有做任何事情。我在下面发布我的代码,希望您能帮助我解决这个问题。

这是我的 server.js 文件

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");

const app = express();

var corsOptions = {
  origin: "http://localhost:8081"
};

app.use(cors(corsOptions));

// parse requests of content-type - application/json
app.use(bodyParser.json());

// parse requests of content-type - application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));

// database
const db = require("./app/models");
const Role = db.role;

// db.sequelize.sync();
// force: true will drop the table if it already exists
db.sequelize.sync({force: true}).then(() => {
  console.log('Drop and Resync Database with { force: true }');
  initial();
});

// simple route
app.get("/", (req, res) => {
  res.json({ message: "Welcome to bezkoder application." });
});

// routes
require('./app/routes/auth.routes')(app);
require('./app/routes/user.routes')(app);

// set port, listen for requests
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}.`);
});

function initial() {
  Role.create({
    id: 1,
    naziv: "user"
  });
 
  Role.create({
    id: 2,
    naziv: "moderator"
  });
 
  Role.create({
    id: 3,
    naziv: "admin"
  });
}

我的 db.config

module.exports = {
  HOST: "localhost",
  USER: "postgres",
  PASSWORD: "sarke",
  DB: "elposlovanje",
  dialect: "postgres",
  port: 5432,
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
};

我来自模型的 index.js

const config = require("../config/db.config.js");

const Sequelize = require("sequelize");
const sequelize = new Sequelize(
  config.DB,
  config.USER,
  config.PASSWORD,
  {
    host: config.HOST,
    dialect: config.dialect,
    port: config.port,

    pool: {
      max: config.pool.max,
      min: config.pool.min,
      acquire: config.pool.acquire,
      idle: config.pool.idle
    }
  }
);

const db = {};

db.Sequelize = Sequelize;
db.sequelize = sequelize;

db.user = require("../models/user.model.js")(sequelize, Sequelize);
db.role = require("../models/role.model.js")(sequelize, Sequelize);

db.role.belongsToMany(db.user, {
  through: "user_roles",
  foreignKey: "roleId",
  otherKey: "userId"
});
db.user.belongsToMany(db.role, {
  through: "user_roles",
  foreignKey: "userId",
  otherKey: "roleId"
});

db.ROLES = ["user", "admin", "moderator"];

module.exports = db;

模型的作用

module.exports = (sequelize, Sequelize) => {
  const Role = sequelize.define("roles", {
    id: {
      type: Sequelize.INTEGER,
      primaryKey: true
    },
    naziv: {
      type: Sequelize.STRING
    }
  });

  return Role;
};

和模型中的用户

module.exports = (sequelize, Sequelize) => {
  const User = sequelize.define("users", {
    ime: {
      type: Sequelize.STRING
    },
    prezime: {
      type: Sequelize.STRING
    },
    email: {
      type: Sequelize.STRING
    },
    lozinka: {
      type: Sequelize.STRING
    },
    brojindexa: {
      type: Sequelize.STRING
    }
  });

  return User;
};

运行node server.js后的输出是

Server is running on port 8080.

我的 package.json

{
  "name": "node-js-jwt-auth-postgresql",
  "version": "1.0.0",
  "description": "Node.js Demo for JWT Authentication with PostgreSQL",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "node js",
    "express",
    "jwt",
    "authentication",
    "postgresql"
  ],
  "author": "bezkoder",
  "license": "ISC",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1",
    "pg": "^7.18.2",
    "pg-hstore": "^2.3.3",
    "sequelize": "^5.22.3"
  },
  "devDependencies": {
    "sequelize-cli": "^6.2.0"
  }
}

【问题讨论】:

  • 你遇到了什么错误?
  • 这是个问题。我没有得到错误

标签: node.js postgresql express sequelize.js pg


【解决方案1】:

我发现问题出在pg的版本上

【讨论】:

    猜你喜欢
    • 2021-08-18
    • 2022-01-22
    • 2017-01-21
    • 2016-10-24
    • 2020-03-14
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多