我有一个分析实用程序,如下所示:
class Analytics {
data: Record<string, IData>;
constructor() {
this.data = {};
}
setPaths(identifier: string) {
if (!this.data[identifier])
this.data[identifier] = {
generic: getGenericInit(),
session: getSessionInit(),
paths: {
geoCollectionPath: '',
sessionCollectionPath: '',
eventsCollectionPath: ''
}
};
this.data[identifier].paths = {
geoCollectionPath: getGeoPath(identifier),
sessionCollectionPath: getSessionPath(identifier),
eventsCollectionPath: getEventPath(identifier)
};
}
getAll() {
return this.data;
}
}
const analytics = new Analytics();
export default analytics;
我把它导入到2个api文件夹:e1.ts
和e2.ts
。e1.ts
:
import { NextApiHandler } from 'next';
import analytics from '@/firebase/v2/analytics';
const handler: NextApiHandler = (req, res) => {
analytics.setPaths('abc');
return res.status(201).end();
};
export default handler;
和e2.ts
:
import { NextApiHandler } from 'next';
import analytics from '@/firebase/v2/analytics';
const handler: NextApiHandler = (req, res) => {
return res.status(200).json(analytics.getAll());
};
export default handler;
现在,即使我通过点击/api/e1
添加数据,因为导入在e2
中示例化了一个新的类,我也无法从/api/e2
中检索数据。
我也试过使用static
示例,但是效果不太好。有人能帮我找到一个解决方案吗?
1条答案
按热度按时间p8ekf7hl1#
在这个由Next.js团队编写的article中,如果您深入到示例化
PrismaClient
的部分,为了不在开发中使用新示例,他们使用global
对象,如下所示: