簡體   English   中英

在 Node.js 中需要兩次相同的模塊

[英]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.jsfunctions/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.jsgetData.js是相互獨立的,因此它們需要獨立導入 FaunaDB 模塊。 兩者都需要代碼的rest中的FaunaDB模塊。 但是,由於它們都依賴於已經導入相同節點模塊的setupFauna.js ,有沒有辦法避免重復導入? 我不確定我所做的是否正確。 據我了解,我基本上在結果setData.jsgetData.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.jsfunctions/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM