第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在不評估它們的情況下讀取 Javascript/Typescript 中的對象值嗎?

我可以在不評估它們的情況下讀取 Javascript/Typescript 中的對象值嗎?

浮云間 2022-06-16 16:39:55
我有這個模塊export default () => ({  environment: process.env.ENVIRONMENT,  port: process.env.PORT  database: {    host: process.env.DATABASE_HOST,    port: process.env.DATABASE_PORT,    username: 'postgres',    password: process.env.DATABASE_PASSWORD,    database: process.env.DATABASE_NAME,  },  awsSqsDefaultQueueUrl: process.env.AWS_SQS_DEFAULT_QUEUE_URL,  sqsEndpoint: process.env.SQS_ENDPOINT,})我想閱讀它并創(chuàng)建一個平面鍵/值對象,僅當值以 開頭時才將其鍵變平process.env,如下所示:{  ENVIRONMENT: configuration().environment,  PORT: configuration().port,  DATABASE_HOST: configuration().database.host  DATABASE_PORT: configuration().database.port  ...}database.username不會在新對象鍵中,因為它的值不是以process.env.我能想到的唯一方法是在沒有評估之前讀取鍵值是通過將文件加載為字符串,然后使用正則表達式解析它。但這感覺不對。有沒有更好的方法來實現(xiàn)這一目標?
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

這是一個想法:


const settings = () => ({

    environment: process.env.ENVIRONMENT,

    port: process.env.PORT,

    database: {

        host: process.env.DATABASE_HOST,

        port: process.env.DATABASE_PORT,

        username: 'postgres',

        password: process.env.DATABASE_PASSWORD,

        database: process.env.DATABASE_NAME,

    },

    awsSqsDefaultQueueUrl: process.env.AWS_SQS_DEFAULT_QUEUE_URL,

    sqsEndpoint: process.env.SQS_ENDPOINT,

});


function parseEnvSettings() {

    // test values

    process.env.ENVIRONMENT = "TEST";


    const str = settings.toString();

    const pattern = /process\.env\.[a-zA-Z0-9_]+/g;


    // get your property names

    const matches = [...str.match(pattern).values()];


    // build your flat settings object

    const parsedSettings = {};

    matches.forEach(property => {

        parsedSettings[property.substr(property.lastIndexOf(".") + 1)] = eval(property);

    });


    // here you go

    console.log(parsedSettings);

}


parseEnvSettings();

產生:


{

  ENVIRONMENT: 'TEST',

  PORT: undefined,

  DATABASE_HOST: undefined,

  DATABASE_PORT: undefined,

  DATABASE_PASSWORD: undefined,

  DATABASE_NAME: undefined,

  AWS_SQS_DEFAULT_QUEUE_URL: undefined,

  SQS_ENDPOINT: undefined

}


查看完整回答
反對 回復 2022-06-16
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號