Open
Description
not working code
// tenant-isolation.js
import Utils from '~/server/Utils';
export default defineNuxtPlugin({
name: 'switch-tenant-db',
async setup(nuxtApp) {
const url = nuxtApp.ssrContext?.event?.node?.req?.url;
console.log("url is:", url);
if (url == "/my" || url == "/login") {
console.log("do not switch tenant db");
} else {
const cookieStr = nuxtApp.ssrContext?.event?.headers.get("cookie") || "";
const cookies = Utils.parseCookiesByStr(cookieStr);
console.log("cookies is:", cookies);
const tenant_id = cookies.tenant_id;
const dbName = `tenant_${tenant_id}`; // 根据租户标识符构建数据库名称
console.log("switch tenant db");
if (nuxtApp.ssrContext && nuxtApp.ssrContext.runtimeConfig) {
nuxtApp.ssrContext.runtimeConfig = Object.assign({}, nuxtApp.ssrContext.runtimeConfig, {
mongoose: {
uri: nuxtApp.ssrContext.runtimeConfig.mongoose.uri,
options: {
dbName: dbName,
},
modelsDir: nuxtApp.ssrContext.runtimeConfig.mongoose.modelsDir
},
});
console.log("after switch is:", nuxtApp.ssrContext?.runtimeConfig?.mongoose);
}
}
}
});
Metadata
Metadata
Assignees
Labels
No labels