【发布时间】: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