.env文件无法传递字符串值

时间:2018-12-02 18:15:06

标签: javascript node.js

我在React项目中工作,当直接输入字符串值时,API调用成功完成。使用.env文件时失败

require('dotenv').load();

export default () => {

  const postToApi = (event) => {
    event.preventDefault();
    axios.post(process.env.API_POST_URL, {step : "3"})
      .then(res => {
        console.log(res);
        console.log(res.data);
      })
  };

这是我在根项目文件夹中的.env文件:

NODE_PATH=./node_modules

API_POST_URL=http://localhost:4000/api/donate

执行上述功能时浏览器控制台错误:

isURLSameOrigin.js:51 Uncaught (in promise) TypeError: Cannot read property 'protocol' of undefined
    at isURLSameOrigin (isURLSameOrigin.js:51)
    at dispatchXhrRequest (xhr.js:106)
    at new Promise (<anonymous>)
    at xhrAdapter (xhr.js:18)
    at dispatchRequest (dispatchRequest.js:49)

package.json依赖关系对象列表:"dotenv": "^6.1.0"

有人知道为什么变量传递不正确吗?

3 个答案:

答案 0 :(得分:0)

const path = require('path');

require('dotenv')。config({path:path.join(__ dirname,'../。env')});

答案 1 :(得分:0)

仅仅因为dotenv.config({ path: "/.config/config.env" });就出现了这个问题 是错误的路径,我应该使用dotenv.config({ path: "./config/config.env" });

仔细检查您的路径。

答案 2 :(得分:-2)

您是否不需要在qoutes之类的NODE_PATH = "./node_modules"

中的env文件中放入字符串

console.log(process.env.API_POST_URL);

会带来什么

只需检查dotenv文档,并说使用`require('dotenv')。config()'