Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 未捕获缺少必需选项:云名称_Reactjs_Npm_Cloudinary_Npm Start - Fatal编程技术网

Reactjs 未捕获缺少必需选项:云名称

Reactjs 未捕获缺少必需选项:云名称,reactjs,npm,cloudinary,npm-start,Reactjs,Npm,Cloudinary,Npm Start,不确定缺少的clous名称是否为REACT\u APP\u CLOUDINARY\u CLOUD\u name,但我的.env文件中存储了我的REACT\u APP\u CLOUDINARY\u API、REACT\u APP\u CLOUDINARY\u name和REACT\u APP\u CLOUDINARY\u UPLOAD\u SECRET。我还使用一行console.log(process.env)在服务器中记录了process.env;我无法从服务器中提取任何内容,因为我收到了一个

不确定缺少的clous名称是否为REACT\u APP\u CLOUDINARY\u CLOUD\u name,但我的.env文件中存储了我的REACT\u APP\u CLOUDINARY\u API、REACT\u APP\u CLOUDINARY\u name和REACT\u APP\u CLOUDINARY\u UPLOAD\u SECRET。我还使用一行console.log(process.env)在服务器中记录了process.env;我无法从服务器中提取任何内容,因为我收到了一个错误throw err;。我还有另一台服务器,我不确定这是否是端口问题

环境署署长

完全错误是:

(anonymous) @   all.js:1
v   @   all.js:1
s   @   all.js:1
window.cloudinary.openUploadWidget  @   all.js:1
uploadWidget    @   UploadMusic.js:114
onClick @   UploadMusic.js:147


UploadMusic.js
    const UploadMusic = () => {
      const [date, setSelectedDate] = useState(null);
      const [values, setValues] = useState({
        name: "",
        artist: "",
        label: "",
        email: "",
        message: "",
        songTitle: "",
        phone: "",
        genre: "",
        date: "",
        uploadedFiles: [],
        buttonText: "Submit",
        uploadPhotosButtonText: "Upload audio files",
      });
    
      // destructure state variables
      const {
        name,
        artist,
        songTitle,
        label,
        email,
        message,
        phone,
        genre,
        uploadedFiles,
        buttonText,
        uploadPhotosButtonText,
      } = values;
      // destructure env variables
      const {
        REACT_APP_API,
        REACT_APP_CLOUDINARY_CLOUD_NAME,
        REACT_APP_CLOUDINARY_UPLOAD_SECRET,
      } = process.env;
      console.log(date);
      // event handler
      const handleChange = (name) => (event) => {
        setValues({ ...values, [name]: event.target.value });
      };
    
      const handleSubmit = (event) => {
        event.preventDefault();
        setValues({ ...values, buttonText: "...sending" });
        // send to backend for email
        console.table({
          name,
          email,
          phone,
          message,
          uploadedFiles,
          genre,
          date,
          label,
        });
        axios({
          method: "POST",
          url: `${REACT_APP_API}/feedback`,
          data: {
            name,
            artist,
            songTitle,
            label,
            email,
            date,
            genre,
            phone,
            message,
            uploadedFiles,
          },
        })
          .then((response) => {
            // console.log('feedback submit response', response);
            if (response.data.success) toast.success("Thanks for your feedback");
            setValues({
              ...values,
              name: "",
              artist: "",
              songTitle: "",
              label: "",
              phone: "",
              email: "",
              genre: "",
              date: "",
              message: "",
              uploadedFiles: [],
              buttonText: "Submitted",
              uploadPhotosButtonText: "Uploaded",
            });
          })
          .catch((error) => {
            // console.log('feedback submit error', error.response);
            if (error.response.data.error) toast.error("Failed! Try again!");
          });
      };
      // function onChangeInput(value) {
      //   console.log(value);
      // }
      const uploadWidget = () => {
        window.cloudinary.openUploadWidget(
          {
            cloud_name: REACT_APP_CLOUDINARY_CLOUD_NAME,
            upload_preset: REACT_APP_CLOUDINARY_UPLOAD_SECRET,
            tags: ["ebooks"],
          },
          function (error, result) {
            // console.log(result);
    
            setValues({
              ...values,
              uploadedFiles: result,
              uploadPhotosButtonText: `${
                result ? result.length : 0
              } Photos uploaded`,
              // Added to include Audio Tracks
              height: 200,
              width: 500,
              flags: "waveform",
              resource_type: "video",
            });
          }
        );
      };

React(主要是?)是一种客户端语言—您如何持久化配置值以便React代码可以使用它们?.env文件是在服务器端环境中设置配置值的常用方法,但我不知道这些值将如何进入您的React应用程序?我也上传了cors包,但不确定这个问题是从哪里来的?您如何持久化Cloudinary配置值,以便React代码可以使用它们?
(anonymous) @   all.js:1
v   @   all.js:1
s   @   all.js:1
window.cloudinary.openUploadWidget  @   all.js:1
uploadWidget    @   UploadMusic.js:114
onClick @   UploadMusic.js:147


UploadMusic.js
    const UploadMusic = () => {
      const [date, setSelectedDate] = useState(null);
      const [values, setValues] = useState({
        name: "",
        artist: "",
        label: "",
        email: "",
        message: "",
        songTitle: "",
        phone: "",
        genre: "",
        date: "",
        uploadedFiles: [],
        buttonText: "Submit",
        uploadPhotosButtonText: "Upload audio files",
      });
    
      // destructure state variables
      const {
        name,
        artist,
        songTitle,
        label,
        email,
        message,
        phone,
        genre,
        uploadedFiles,
        buttonText,
        uploadPhotosButtonText,
      } = values;
      // destructure env variables
      const {
        REACT_APP_API,
        REACT_APP_CLOUDINARY_CLOUD_NAME,
        REACT_APP_CLOUDINARY_UPLOAD_SECRET,
      } = process.env;
      console.log(date);
      // event handler
      const handleChange = (name) => (event) => {
        setValues({ ...values, [name]: event.target.value });
      };
    
      const handleSubmit = (event) => {
        event.preventDefault();
        setValues({ ...values, buttonText: "...sending" });
        // send to backend for email
        console.table({
          name,
          email,
          phone,
          message,
          uploadedFiles,
          genre,
          date,
          label,
        });
        axios({
          method: "POST",
          url: `${REACT_APP_API}/feedback`,
          data: {
            name,
            artist,
            songTitle,
            label,
            email,
            date,
            genre,
            phone,
            message,
            uploadedFiles,
          },
        })
          .then((response) => {
            // console.log('feedback submit response', response);
            if (response.data.success) toast.success("Thanks for your feedback");
            setValues({
              ...values,
              name: "",
              artist: "",
              songTitle: "",
              label: "",
              phone: "",
              email: "",
              genre: "",
              date: "",
              message: "",
              uploadedFiles: [],
              buttonText: "Submitted",
              uploadPhotosButtonText: "Uploaded",
            });
          })
          .catch((error) => {
            // console.log('feedback submit error', error.response);
            if (error.response.data.error) toast.error("Failed! Try again!");
          });
      };
      // function onChangeInput(value) {
      //   console.log(value);
      // }
      const uploadWidget = () => {
        window.cloudinary.openUploadWidget(
          {
            cloud_name: REACT_APP_CLOUDINARY_CLOUD_NAME,
            upload_preset: REACT_APP_CLOUDINARY_UPLOAD_SECRET,
            tags: ["ebooks"],
          },
          function (error, result) {
            // console.log(result);
    
            setValues({
              ...values,
              uploadedFiles: result,
              uploadPhotosButtonText: `${
                result ? result.length : 0
              } Photos uploaded`,
              // Added to include Audio Tracks
              height: 200,
              width: 500,
              flags: "waveform",
              resource_type: "video",
            });
          }
        );
      };