سلام
وقتی که سعی میکنم Node.js APP ای که ساختم رو روی سرور نصب کنم به مشکل میخورم. اول سعی کردم روی cPanel نصبش کنم اما نشد. بعد از اون روی Heroku نصبش کردم اما موقع اجرا Crash داد. Log گرفتم و ارور ها این بودن:
2020-12-27T15:47:46.889808+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=nodejs-portfolio-server.herokuapp.com request_id=1e1793b9-e811-4234-bd9b-c20f3b74e987 fwd="95.223.73.133" dyno= connect= service= status=503 bytes= protocol=https
2020-12-27T15:47:47.182099+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=nodejs-portfolio-server.herokuapp.com request_id=4399a1ad-d48c-403f-91ae-1366c1b87c5d fwd="95.223.73.133" dyno= connect= service= status=503 bytes= protocol=https
app.listen(config.port)
رو تغییر دادم به:
app.listen(process.env.PORT || 5000)
و همینطور به چیز های مشابه اما مشکل حل نشد.
بعد سعی کردم به صورت دستی path هارو جواب بدم که بازم نشد:
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.get('/favicon.ico', (req, res) => res.status(204));
همینطور توی cPanel ورژن Node رو عوض کردم و با همه چیزای موجود امتحانش کردم و حالتم رو هم با Development و Production امتحان کردم.
دیگه میخوام کم کم گریه کنم.
این package.jsom هست:
{
"name": "node.js-api",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"start": "nodemon server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "^5.0.0",
"body-parser": "^1.19.0",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"express-validator": "^5.3.0",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.11.8",
"mongoose-timestamp": "^0.6.0"
},
"devDependencies": {
"nodemon": "^2.0.6"
},
"engines": {
"node": "15.4.0"
},
"description": ""
}
و اینم server.js
//2a6595e9-b280-4ff2-b95e-64e67203ae36
const uri = "mongodb+srv://<username>:<password>@cluster0.eky9x.mongodb.net/<dbname>?retryWrites=true&w=majority"
const express = require("express");
const app = express();
const path = express
const bodyParser = require("body-parser");
const config = require("./modules/config");
const mongoose = require("mongoose");
const expressValidator = require("express-validator");
global.config = require("./modules/config");
//Connect to DB
mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true }, (err, db) => console.log("connected to DB!"));
mongoose.Promise = global.Promise;
//
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json({ type: "application/json" }));
app.use(expressValidator());
const apiRouter = require("./modules/routes/api");
const panelRouter = require("./modules/models/controllers/v1/adminPanel");
app.use("/portfolio/api", apiRouter);
app.use("/portfolio/admin", panelRouter);
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.get('/favicon.ico', (req, res) => res.status(204));
app.listen(config.port)
اینو از دوره آموزشی Restful API دنبال کردم.
@hesammousavi
ممنون.
به مهدی رفیعی کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟