簡體   English   中英

Process.env.PORT 與硬編碼

[英]Process.env.PORT vs hardcoded

我有一個似乎無法解決的 process.env.PORT 問題。

我有這個代碼,它不起作用,因為我收到錯誤“URI 格式錯誤”。

async asyncData({ params }) {
    let baseUrl = ''
    if (process.env.NODE_ENV === 'production') {
        baseUrl = 'https://url.com'
    } else {
        baseUrl = 'http://localhost:' + process.env.PORT || 3000
    }
    const response = await axios.get(`${baseUrl}/api/v1/products?popular=true&limit=6`)
    const data = response . data
    return { popularProducts: data.results }
}

但是,如果我使用它,則效果很好。

async asyncData({ params }) {
    let baseUrl = ''
    if (process.env.NODE_ENV === 'production') {
        baseUrl = 'https://url.dk'
    } else {
        baseUrl = 'http://localhost:' + 3001
    }
    const response = await axios.get(`${baseUrl}/api/v1/products?popular=true&limit=6`)
    const data = response.data
    return { popularProducts: data.results }
}

在 package.json 我設置了以下內容

"dev": "cross-env NODE_ENV=development PORT=3001 nodemon server/index.js --watch server --fix",

為什么這對我不起作用?

轉換這個

async asyncData({ params }) {
    let baseUrl = ''
    if (process.env.NODE_ENV === 'production') {
        baseUrl = 'https://url.com'
    } else {
        baseUrl = 'http://localhost:' + process.env.PORT || 3000
    }
    const response = await axios.get(`${baseUrl}/api/v1/products?popular=true&limit=6`)
    const data = response . data
    return { popularProducts: data.results }
}

async asyncData({ params }) {
    let port = process.env.PORT || 3000;
    let baseUrl = 'http://localhost:' + port;

    if (process.env.NODE_ENV === 'production') {
        baseUrl = 'https://url.com';
    }

    const response = await axios.get(`${baseUrl}/api/v1/products?popular=true&limit=6`)
    const data = response . data
    return { popularProducts: data.results }
}

這應該按預期工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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