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.