【发布时间】:2021-10-08 22:20:31
【问题描述】:
我正在尝试在 Heroku 上部署我的 node.js 项目,但是当我运行 heroku open 时,我不断收到此错误
{"message":"connect ECONNREFUSED 127.0.0.1:3000","name":"Error","stack":"Error: connect ECONNREFUSED 127.0.0.1:3000\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16)","config":{"url":"http://localhost:3000/api/users","method":"get","headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/0.21.1"},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1},"code":"ECONNREFUSED"}
当我刚刚运行npm start时,我的应用程序在本地服务器上完美运行
我已经阅读了许多帖子并观看了许多 youtube 视频,但我找不到此错误的答案。我是 FULL STACK DEV 的新手,非常感谢您的帮助。
谢谢
我已经使用heroku config:set 和 Heroku 仪表板输入了配置变量,这里是代码
server.js
const express = require('express');
const dotenv = require('dotenv');
const morgan = require('morgan');
const bodyparser = require("body-parser");
const path = require('path');
const connectDB = require('./server/database/connection');
const app = express();
dotenv.config( { path : 'config.env'} )
const PORT = process.env.PORT || 8080
// log requests
app.use(morgan('tiny'));
// mongodb connection
connectDB();
// parse request to body-parser
app.use(bodyparser.urlencoded({extended : true}))
// set view engine
app.set("view engine", "ejs")
//app.set("views", path.resolve(__dirname, "views/ejs"))
// load assets
app.use('/css', express.static(path.resolve(__dirname, "assets/css")))
app.use('/img', express.static(path.resolve(__dirname, "assets/img")))
app.use('/js', express.static(path.resolve(__dirname, "assets/js")))
// load routers
app.use('/', require('./server/routes/router'))
app.listen(process.env.PORT||PORT, ()=> { console.log(`Server is running on http://localhost:${PORT}`)});
connection.js
const mongoose = require('mongoose');
const connectDB = async () => {
try{
//mongodb connection string
const con = await mongoose.connect(process.env.MONGO_URI ,{
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
})
console.log(`MongoDB connected : ${con.connection.host}`);
}catch(err){
console.log(err);
process.exit(1);
}
}
module.exports = connectDB
过程文件
web: npm start
config.env
PORT = 3000
MONGO_URI=mongodb+srv://admin_m:******@cluster0.dbljb.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
package.json
{
"name": "crud_app",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js",
"dev": "nodemon server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.21.1",
"body-parser": "^1.19.0",
"bootstrap": "^5.0.2",
"dotenv": "^10.0.0",
"ejs": "^3.1.6",
"evo-calendar": "^1.1.3",
"express": "^4.17.1",
"jquery": "^3.6.0",
"jsdom": "^16.6.0",
"jsdon": "^0.1.15",
"mongoose": "^5.13.0",
"morgan": "^1.10.0",
"nodemon": "^2.0.7",
"rrule": "^2.6.8"
}
}
【问题讨论】:
标签: javascript node.js mongodb heroku deployment