我的 MERN 应用程序在部署到 heroku 时显示错误?

如何解决我的 MERN 应用程序在部署到 heroku 时显示错误?

尝试将我的应用程序部署到 heroku 时,构建成功,但后端路由 HLRoute 处理 dotenv 时出错,我不确定可能是什么问题?{{3} }

enter image description here

server.js



const express = require("express");
const cors = require('cors')
const app = express()

const path = require("path")
const mongoose = require('mongoose')
// const bodyParser = require("body-parser")


//MIDDLEWARE
app.use(cors())






// app.use(bodyParser.urlencoded({ extended: true }));

//App Routes files

const houseRouter = require('./Routes/HouseListing/HLRoute')
const houseFetchRoute = require('./Routes/HouseFetchRoutes/HouseFetch')





//App route
app.use(houseRouter)
app.use(houseFetchRoute)


if(process.env.NODE_ENV === "production") {
    app.use(express.static('client/build'))

    app.get("*",(req,res)=>{
        res.sendFile(path.join(__dirname,'client','build','index.html'))
    })
} else {
    app.get("/",res)=>{
        res.send("api running")
    })
}


//server entry point
const PORT = process.env.PORT || 5000;

app.listen(PORT,() =>{
    console.log(`Server is runnning on port: ${PORT}`)
})

HLRoute.js

// const express = require('express')
// const router = express.Router()
const router = require('express').Router();
const {House} = require('../../Models/House');
const Formidable = require('formidable');
const cloudinary = require('cloudinary').v2
const mongoose = require('mongoose');
// require("dotenv").config()
// const { request,response } = require('express');
const dotenv = require("dotenv");
dotenv.config();


//mongoDB and Cloudinary

const mongoURI = process.env.Mongo_URI;

cloudinary.config({
    cloud_name: process.env.CLOUD_NAME,api_key: process.env.API_KEY,api_secret: process.env.API_SECRET
})


mongoose.connect(mongoURI,{useNewUrlParser:true,useUnifiedTopology:true},(error)=>{
    if(error) {
        return console.log(error)
    }
    return console.log("database is connected")
})

router.post("/api/house-listing",async (request,response)=>{
    const form = new Formidable.IncomingForm();

    form.parse(request,(error,fields,files)=>{
        const {
            price,city,county,numOfbeds,numOfBaths,numOfGarages,isSaleOrRent,} = fields

        const { house_image } = files;

        console.log('Price: ',price)
        console.log('City: ',city)
        console.log('county: ',county)
        console.log('numOfGarages: ',numOfGarages)
        console.log('numOfbeds: ',numOfbeds)
        console.log('numOfBaths: ',numOfBaths)
        console.log('isSaleOrRent: ',isSaleOrRent)
        console.log('houseImage',house_image.path)

        cloudinary.uploader.upload( house_image.path,{folder:"/houseAgency/houses"},async(error,result)=>{
            if(error) {
                console.log(error)
            }
            const image_url = result.url;

            const newHouse = new House({
                house_location: {
                    
                    county: county,city: city,},house_details: {
                    price: price,numOfbeds: numOfbeds,numOfBaths: numOfBaths,numOfGarages: numOfGarages,isSaleOrRent: isSaleOrRent,house_image: image_url,}
            })
            const savedHouse = await newHouse.save();
            return response.status(200).json(savedHouse)
        })
    })
})



module.exports = router;

package.json

{
  "name": "real-estate-app","version": "1.0.0","description": "","main": "server.js","scripts": {
    "start": "node server.js","heroku-postbuild": "NPM_CONfig_PRODUCTION=false npm install --prefix client npm run build --prefix client","dev": "nodemon server.js"
  },"author": "","license": "ISC","dependencies": {
    "cloudinary": "^1.23.0","cors": "^2.8.5","express": "^4.17.1","formidable": "^1.2.2","mongoose": "^5.11.13","nodemailer": "^6.4.17","nodemon": "^2.0.7"
  },"devDependencies": {
    "dotenv": "^8.2.0"
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?