[英]Requiring the same module twice in Node.js
我正在嘗試編寫一個無服務器 function 來獲取和設置 FaunaDB 上的數據。 問題是,如果嘗試使用已經存在的名稱創建集合,FaunaDB 會拋出錯誤。 因此,在獲取或設置數據之前,我首先需要檢查一個集合是否存在,如果不存在則創建它。
所以,我的設置是這樣的:
setupFauna.js
:
const faunaDB = require('faunadb')
module.exports = async function setupFauna(secret, collectionName) {
const requiredDB = new faunaDB.Client({
secret: secret
})
}
// rest of the code
functions/setData.js
和functions/getData.js
/getData.js :
const faunaDB = require('faunadb')
const setupFauna = require('../setupFauna')
const faunaSecret = process.env.FAUNADB
const requiredDB = new faunaDB.Client({
secret: faunaSecret
})
exports.handler = async () => {
return setupFauna(faunaSecret, collectionName).then(() => {
// rest of the code
}
}
setData.js
和getData.js
是相互獨立的,因此它們需要獨立導入 FaunaDB 模塊。 兩者都需要代碼的rest中的FaunaDB模塊。 但是,由於它們都依賴於已經導入相同節點模塊的setupFauna.js
,有沒有辦法避免重復導入? 我不確定我所做的是否正確。 據我了解,我基本上在結果setData.js
和getData.js
中導入了兩次相同的東西。 此外,我必須在所有這 3 個文件中配置 FaunaDB 客戶端。 這對我來說似乎很容易出錯。
有人可以確認我目前的設置是否是 go 的好方法,或者我可以做些什么來使其達到最佳狀態? 多次導入相同的東西是個好主意嗎? 我知道當您在同一個文件中多次需要相同的東西時這不是問題,但這也適用於我的情況嗎?
從所有的評論來看,它似乎並不是真正需要的,但為了簡化流程並減少出錯的可能性,我按照@hor53 的評論創建了另一個導出。
所以現在我有這樣的文件:
setupFauna.js
:
const faunaDB = require('faunadb')
const requiredDB = new faunaDB.Client({
secret: process.env.FAUNADB
})
async function setupFauna(collectionName) {
// rest of the code
}
module.exports = {
faunaDB,
requiredDB,
setupFauna
}
functions/setData.js
和functions/getData.js
/getData.js :
const faunaDB = require('../setupFauna').faunaDB
const commentsDB = require('../setupFauna').requiredDB
const setupComments = require('../setupFauna').setupFauna
exports.handler = async () => {
return setupFauna(collectionName).then(() => {
// rest of the code
}
}
我會知道是否有更好的流程,或者我是否遺漏了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.