问题描述
这是我第一次使用 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,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"
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)