Nextjs下一个会话存储,而不是内存



我没有找到任何资源或包来使用下一个会话内存以外的其他存储,其中内存不是适合生产的解决方案?

我想使用文件存储(首选)或db .

您可以将会话存储在例如sqlite3中。

  1. install sqlite 'npm install connect-sqlite3'
  2. 创建一个新文件,例如'get-session.js',并这样写:
import nextSession from "next-session";
import { expressSession, promisifyStore } from "next-session/lib/compat";
var SQLiteStore = require("connect-sqlite3")(expressSession);
export const getSession = nextSession({
name: "WIB_SESSION",
store: promisifyStore(
new SQLiteStore({ dir: "./tmp/", table: "wiberSessions" })
),
});
  1. 创建一个新的api端点,并把这个。
import { getSession } from "../../lib/get-session.js";
export default async function handler(req, res) {
const session = await getSession(req, res);
const data={hello:"hello im a data in session"}
session.myData= data
res.status(200).json({save:"session saved"});
}
export const config = {
api: {
externalResolver: true,
},
};
  1. 现在从你的页面
import { getSession } from "../lib/get-session";
export async function getServerSideProps({ req, res }) {
const session = await getSession(req, res);
return {
props: {
dataInSession: session.myData,
},
};
}

现在你将有一个名为"WIB_SESSION"./tmp/wiberSessions.

这里有一个带有next的基本项目。Github

第一次加载页面时,第一次当你点击按钮重新加载页面时你会得到cookie和/tmp/sqlite。withcookie

中的值

的问候

相关内容

  • 没有找到相关文章

最新更新