我在后端使用帶有打字稿的 NodeJS 中的 express 框架。我的索引檔案中有一個非常簡單的架構:
索引.html
import express = require("express");
import mongoClient = require("mongodb");
import apiRoutes from "./routes";
import { MONGO_CONNECTION } from "./config/mongo_config";
const app = express();
mongoClient.MongoClient.connect(MONGO_CONNECTION, { }, (err: any, mclient: any) => {
if (err) throw err;
const mongodb = mclient.db('test');
app.use('/api', isOnline, apiRoutes);
app.listen(80, () => console.log('API running on port 80'));
});
快速路由在另一個檔案中分隔(在我的版本中,它被分隔在多個檔案中,只是為了簡單起見),這里只是一個示例:
路線/index.ts
import express = require("express");
import { Router } from "express";
const router = Router({mergeParams: true});
router.get('/example', (req: express.Request, res: express.Response) => {
res.json('Hello World');
});
export default router;
我不想使用貓鼬。那么有沒有辦法將資料庫連接傳遞給另一個檔案而無需再次連接?
uj5u.com熱心網友回復:
您可以在 index.js 中匯出物件
export const mongodb = {};
然后代替這個:
const mongodb = mclient.db('test');
采用:
mongodb.connection = mclient.db('test');
或類似的東西。
然后代碼的其他部分可以匯入它,但在使用它之前確保它不是未定義的,因為它可能尚未初始化。
另一種選擇是匯出一個承諾,該承諾將通過建立連接來解決:
export const mongodb = new Promise((resolve, reject) => {
// establish your connection here ...
resolve(mclient.db('test'));
// ...
);
然后在您的匯入代碼中,您還將與 await 一起使用它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451981.html
