【问题标题】:Process.env.PORT vs hardcodedProcess.env.PORT 与硬编码
【发布时间】:2019-12-10 19:09:44
【问题描述】:

我似乎无法解决 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",

为什么这对我不起作用?

【问题讨论】:

  • 考虑运算符优先级...如果您注销格式错误的基本 URL,您将看到问题。
  • 'http://localhost:' + process.env.PORT || 3000 不符合您的预期,您必须写'http://localhost:' + (process.env.PORT || 3000)

标签: javascript node.js nuxt.js


【解决方案1】:

转换这个

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 }
}

这应该可以正常工作

【讨论】:

  • 如果我设置 port = process.env.PORT || 这对我有用3001.Consol.log 给出 process.env.PORT = undefined。我不知道为什么会这样。
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多