سلام این کد رو دوستان لطف کنن کامل کنند من هرچی زدم ارور داد ممنو ن میشم
const express = require("express");
const expressLayouts = require("express-ejs-layouts");
const ejs = require("ejs");
const path = require("path");
const session = require("express-session");
const SequelizeStore = require("connect-session-sequelize")(session.Store);
const app = express();
module.exports = class Application {
constructor() {
this.configServer();
this.configDatabase();
this.configApp();
this.configRoutes();
}
configServer() {
app.listen(5000, (err) => {
if (err) {
console.log(err);
}
console.log("server created...");
});
}
configDatabase() {
const sequelizeConfig = require("./configDatabase");
sequelizeConfig
.authenticate()
.then(() => {
console.log("Connected to MariaDB");
})
.catch((err) => {
console.error("Error connecting to MariaDB:", err);
});
}
configApp() {
app.use(express.static(path.join(**dirname, "public")));
app.set("view engine", "ejs");
app.set("views", path.join(**dirname, "resource/views"));
app.use(expressLayouts);
app.set("layout", "masterPage");
app.set("layout extractStyles", true);
app.set("layout extractScripts", true);
app.use(
session({
secret: "my-secret-key",
resave: false,
proxy: true,
saveUninitialized: true,
store: ?,
db: "?",
table: "Session",
extendDefaultFields: (defaults, session) => {
return {
data: defaults.data,
expires: defaults.expires,
userId: session.userId,
};
},
})
);
}
configRoutes() {
const routing = require("./routes/masterRouters");
app.use(routing);
}
};
کدهای خودتو به صورت زیر اصلاح کن ببین مشکلت حل میشه:
app.use(express.static(path.join(__dirname, "public")));
app.set("views", path.join(__dirname, "resource/views"));
const SequelizeStore = require("connect-session-sequelize")(session.Store);
const sequelizeConfig = require("./configDatabase");
const sessionStore = new SequelizeStore({ db: sequelizeConfig });
app.use(
session({
secret: "my-secret-key",
resave: false,
proxy: true,
saveUninitialized: true,
store: sessionStore,
table: "Session",
extendDefaultFields: (defaults, session) => {
return {
data: defaults.data,
expires: defaults.expires,
userId: session.userId,
};
},
})
);
ببین دوست عزیز، اول که از dirname اشتباه استفاده کرده بودی، در صورتیکه این متغیر در کد اصلی نمیادو باید به جای dirname از __dirname استفاده کنی.
ثانیاً، در بخش configApp از express-session استفاده کردی ولی store رو تعیین نکردی. برای استفاده از SequelizeStore، باید یک نمونه از آن را ایجاد بکنی و به عنوان مقدار store در express-session استفاده کنی.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟