(Heroku + node js + mongoDB ) Getting error when deploying, mainly time out error. Can somebody tell how to resolve

Viewed 16

I am trying to deploy in heroku, but i am getting errors. Can somebody tell me where i did mistake. I tried many things but didnt worked.

Here is the code for app.js

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const _ = require("lodash");

const app = express();

app.set('view engine', 'ejs');

app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));

mongoose.connect("mongodb+srv://Teja-Sruthi:varanasi@cluster0.rp0nmhh.mongodb.net/toDoListDB",function(err){
  if(err)
    console.log("Here is the error");
  else
    console.log("Successfully connected to MongoDB");
});

const itemsSchema  = new mongoose.Schema({
  name:String
});

const listSchema ={
  name:String,
  items:[itemsSchema]
};

const Item = mongoose.model("Item",itemsSchema);
const List = mongoose.model("List",listSchema);

const item1 = new Item({
  name: "Complete this course"
});

const item2 = new Item({
  name: "Complete RPA course"
});

const item3 = new Item({
  name: "Learn Programming"
});

const defaultArray = [item1, item2, item3];


// Item.insertMany(defaultArray,function(err){
//   if(err)
//     console.log(err);
//   else
//     console.log("Successfully saved");
// });

app.get("/", function(req, res) {
  Item.find(function(err,item){
    if(err)
      console.log("Error in finding ");
    else{
      if(item.length==0){
        Item.insertMany(defaultArray,function(err){
          if(err)
            console.log("Error in inserting ");
          else
            console.log("Successfully saved");
        });
        return res.redirect("/");
        }
      }
      res.render("list", {listTitle: "Today", newListItems: item});
    })

});

app.post("/", function(req, res){
  const itemName = req.body.newItem;
  const title = req.body.list;
  if(itemName!=""){
    const item = new Item({
      name: itemName,
    });
    if(title=="Today"){
      item.save();
      res.redirect("/");
    }else{
      List.findOne({name:title},function(err,matched){
        matched.items.push(item);
        matched.save();
        res.redirect("/"+title);
      });

    }
  }
  else{
    res.redirect("/"+title);
  }
});

app.post("/delete",function(req,res){
  const itemId = req.body.checkbox;
  const itemName = req.body.itemName;
  if(itemName=="Today"){
    Item.findByIdAndRemove(itemId,function(err){
      if(err)
        console.log("Error in deleting")
      else{
        res.redirect("/");
      }
    });
  }else{
    List.findOneAndUpdate({name:itemName},{$pull:{items:{_id:itemId}}},function(err,result){
      if(!err){

        res.redirect("/"+itemName);
      }
      else {
        console.log("error is from here");
      }

    });
  }
});


app.get("/:value",function(req,res){
  let listVal = _.capitalize(req.params.value);
  const list1 = new List({
    name: listVal,
    items :defaultArray
  });
  List.findOne({name:listVal},function(err,getList){
    if(err)
      console.log("Error in the list");
    else{
      if(!getList){
        list1.save();
        res.redirect("/"+listVal);
      }
      else{
        res.render("list",{listTitle:listVal, newListItems:getList.items});
      }
    }
  });

});

app.get("/about", function(req, res){
  res.render("about");
});

const port = 3000;
const host = '0.0.0.0';

app.listen(process.env.PORT || 3000, host, function() {
  console.log("Server started on port 3000");
});

Procfile

worker: node app.js

First I used web, later in some stackoverflow post they suggested to use worker. So, I used it.

This is package.json

{
  "name": "todolist-v1",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "engines": {
    "node": "16.17.0",
    "npm": "8.15.0"
  },
  "dependencies": {
    "body-parser": "^1.18.3",
    "ejs": "^2.6.1",
    "express": "^4.16.3",
    "lodash": "^4.17.21",
    "mongoose": "^6.6.1"
  },
  "description": ""
}

These are the logs i got in used heroku logs command

2022-09-22T11:43:47.573252+00:00 heroku[web.1]: Starting process with command `npm start`
2022-09-22T11:43:48.020566+00:00 heroku[worker.1]: Starting process with command `node app.js`
2022-09-22T11:43:48.636966+00:00 heroku[worker.1]: State changed from starting to up
2022-09-22T11:43:49.398088+00:00 app[web.1]:
2022-09-22T11:43:49.398103+00:00 app[web.1]: > todolist-v1@1.0.0 start
2022-09-22T11:43:49.398103+00:00 app[web.1]: > node app.js
2022-09-22T11:43:49.398103+00:00 app[web.1]:
2022-09-22T11:43:49.914670+00:00 app[web.1]: Server started on port 3000
2022-09-22T11:43:50.376696+00:00 app[worker.1]: Server started on port 3000
2022-09-22T11:43:50.490534+00:00 heroku[web.1]: State changed from starting to up
2022-09-22T11:44:19.939658+00:00 app[web.1]: Here is the error
2022-09-22T11:44:20.402283+00:00 app[worker.1]: Here is the error
2022-09-22T11:44:25.544171+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=dry-oasis-02543.herokuapp.com request_id=8f66c999-2443-4fc3-a235-ee19ab2e1e19 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https
2022-09-22T11:44:36.038694+00:00 app[web.1]: Error in the list
2022-09-22T11:44:56.021923+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/favicon.ico" host=dry-oasis-02543.herokuapp.com request_id=9aad3faf-e16b-4d72-9017-d5adab63dcdd fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T11:49:05.000000+00:00 app[api]: Build started by user tejasruthivaranasi@gmail.com
2022-09-22T11:49:24.598076+00:00 app[api]: Deploy ccfe68fc by user tejasruthivaranasi@gmail.com
2022-09-22T11:49:24.598076+00:00 app[api]: Release v8 created by user tejasruthivaranasi@gmail.com
2022-09-22T11:49:25.191002+00:00 heroku[web.1]: Restarting
2022-09-22T11:49:25.206129+00:00 heroku[web.1]: State changed from up to starting
2022-09-22T11:49:25.241019+00:00 heroku[worker.1]: Restarting
2022-09-22T11:49:25.243739+00:00 heroku[worker.1]: State changed from up to starting
2022-09-22T11:49:25.931887+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2022-09-22T11:49:26.000000+00:00 app[api]: Build succeeded
2022-09-22T11:49:26.098641+00:00 heroku[web.1]: Process exited with status 143
2022-09-22T11:49:26.123725+00:00 heroku[worker.1]: Stopping all processes with SIGTERM
2022-09-22T11:49:26.312098+00:00 heroku[worker.1]: Process exited with status 143
2022-09-22T11:49:27.079784+00:00 heroku[web.1]: Starting process with command `npm start`
2022-09-22T11:49:27.344674+00:00 heroku[worker.1]: Starting process with command `node app.js`
2022-09-22T11:49:27.941719+00:00 heroku[worker.1]: State changed from starting to up
2022-09-22T11:49:28.759619+00:00 app[web.1]:
2022-09-22T11:49:28.759633+00:00 app[web.1]: > todolist-v1@1.0.0 start
2022-09-22T11:49:28.759633+00:00 app[web.1]: > node app.js
2022-09-22T11:49:28.759633+00:00 app[web.1]:
2022-09-22T11:49:29.100500+00:00 app[web.1]: Server started on port 3000
2022-09-22T11:49:29.242842+00:00 heroku[web.1]: State changed from starting to up
2022-09-22T11:49:29.509283+00:00 app[worker.1]: Server started on port 3000
2022-09-22T11:49:59.125117+00:00 app[web.1]: Here is the error
2022-09-22T11:49:59.539099+00:00 app[worker.1]: Here is the error
2022-09-22T11:50:01.519135+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=dry-oasis-02543.herokuapp.com request_id=b11dd120-7249-4193-900b-06e64dcb57a2 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T11:50:12.216527+00:00 app[web.1]: Error in the list
2022-09-22T11:50:32.201892+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/favicon.ico" host=dry-oasis-02543.herokuapp.com request_id=43ebca7f-343b-4ba7-b9af-b17f525b8211 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T11:51:25.684763+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=dry-oasis-02543.herokuapp.com request_id=1506f9ca-959b-464d-9452-6c012bc8f60e fwd="49.204.236.35" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T11:51:36.223978+00:00 app[web.1]: Error in the list
2022-09-22T11:51:56.213282+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/favicon.ico" host=dry-oasis-02543.herokuapp.com request_id=f5813669-3f1d-4333-bc6c-f4f2d0dd5b13 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T12:21:10.759124+00:00 heroku[web.1]: Idling
2022-09-22T12:21:10.764667+00:00 heroku[web.1]: State changed from up to down
2022-09-22T12:21:10.774495+00:00 heroku[worker.1]: Idling
2022-09-22T12:21:10.776324+00:00 heroku[worker.1]: State changed from up to down
2022-09-22T12:21:11.449023+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2022-09-22T12:21:11.643613+00:00 heroku[web.1]: Process exited with status 143
2022-09-22T12:21:12.711392+00:00 heroku[worker.1]: Stopping all processes with SIGTERM
2022-09-22T12:21:13.033420+00:00 heroku[worker.1]: Process exited with status 143
2022-09-22T12:22:59.026961+00:00 heroku[web.1]: Unidling
2022-09-22T12:22:59.034456+00:00 heroku[web.1]: State changed from down to starting
2022-09-22T12:22:59.069700+00:00 heroku[worker.1]: Unidling
2022-09-22T12:22:59.071316+00:00 heroku[worker.1]: State changed from down to starting
2022-09-22T12:23:01.147856+00:00 heroku[worker.1]: Starting process with command `node app.js`
2022-09-22T12:23:01.167784+00:00 heroku[web.1]: Starting process with command `npm start`
2022-09-22T12:23:01.741746+00:00 heroku[worker.1]: State changed from starting to up
2022-09-22T12:23:03.404493+00:00 app[worker.1]: Server started on port 3000
2022-09-22T12:23:03.564580+00:00 app[web.1]:
2022-09-22T12:23:03.564587+00:00 app[web.1]: > todolist-v1@1.0.0 start
2022-09-22T12:23:03.564588+00:00 app[web.1]: > node app.js
2022-09-22T12:23:03.564588+00:00 app[web.1]:
2022-09-22T12:23:04.268791+00:00 app[web.1]: Server started on port 3000
2022-09-22T12:23:04.584653+00:00 heroku[web.1]: State changed from starting to up
2022-09-22T12:23:33.451469+00:00 app[worker.1]: Here is the error
2022-09-22T12:23:34.310032+00:00 app[web.1]: Here is the error
2022-09-22T12:23:36.112393+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=dry-oasis-02543.herokuapp.com request_id=771ad4af-a2d0-4fe6-8fd8-a95259e627ea fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T12:23:46.556173+00:00 app[web.1]: Error in the list
2022-09-22T12:24:06.516346+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/favicon.ico" host=dry-oasis-02543.herokuapp.com request_id=af42aa9e-a35a-477d-97e7-a9252d8fd9f0 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T12:24:12.292521+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=dry-oasis-02543.herokuapp.com request_id=924bf97b-becb-4bf2-92f8-30923d1e62d9 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https
2022-09-22T12:24:23.687465+00:00 app[web.1]: Error in the list
2022-09-22T12:24:43.688408+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/favicon.ico" host=dry-oasis-02543.herokuapp.com request_id=84fc8cc4-1aad-4fdf-be95-c8cd91b648ee fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
2022-09-22T12:54:40.227336+00:00 heroku[web.1]: Idling
2022-09-22T12:54:40.232858+00:00 heroku[web.1]: State changed from up to down
2022-09-22T12:54:40.242617+00:00 heroku[worker.1]: Idling
2022-09-22T12:54:40.245598+00:00 heroku[worker.1]: State changed from up to down
2022-09-22T12:54:40.999737+00:00 heroku[worker.1]: Stopping all processes with SIGTERM
2022-09-22T12:54:41.244765+00:00 heroku[worker.1]: Process exited with status 143
2022-09-22T12:54:43.076058+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2022-09-22T12:54:43.355126+00:00 heroku[web.1]: Process exited with status 143
2022-09-22T13:06:03.062197+00:00 heroku[web.1]: Unidling
2022-09-22T13:06:03.066831+00:00 heroku[web.1]: State changed from down to starting
2022-09-22T13:06:03.118009+00:00 heroku[worker.1]: Unidling
2022-09-22T13:06:03.123303+00:00 heroku[worker.1]: State changed from down to starting
2022-09-22T13:06:05.208336+00:00 heroku[web.1]: Starting process with command `npm start`
2022-09-22T13:06:05.223738+00:00 heroku[worker.1]: Starting process with command `node app.js`
2022-09-22T13:06:05.898834+00:00 heroku[worker.1]: State changed from starting to up
2022-09-22T13:06:07.286374+00:00 app[web.1]:
2022-09-22T13:06:07.286485+00:00 app[web.1]: > todolist-v1@1.0.0 start
2022-09-22T13:06:07.286491+00:00 app[web.1]: > node app.js
2022-09-22T13:06:07.286492+00:00 app[web.1]:
2022-09-22T13:06:07.480766+00:00 app[worker.1]: Server started on port 3000
2022-09-22T13:06:07.798042+00:00 app[web.1]: Server started on port 3000
2022-09-22T13:06:08.202201+00:00 heroku[web.1]: State changed from starting to up
2022-09-22T13:06:37.514683+00:00 app[worker.1]: Here is the error
2022-09-22T13:06:37.839644+00:00 app[web.1]: Here is the error
2022-09-22T13:06:39.152554+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=dry-oasis-02543.herokuapp.com request_id=0a2548b5-c865-4d50-88ef-054bc6a5e1d4 fwd="49.204.236.35" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https

I am trying this from long time. Please help.

0 Answers
Related