Nodemon gives UnhandledPromiseRejectionWarning upon saving file - node.js

I'm using Windows and I've just installed nodemon 2.0.12 (added to path). Whenever I run a basic application it works it should until I save a file, then I receive the following error
My project is a basic express app:
const express = require('express')
const app = express()
const PORT = 3000
app.use("/", (req, res) => res.send('test'))
app.listen(PORT, function() {
console.log('Server started on port 3000')
})
My package.json is as follows
{
"name": "express.1",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"dev": "nodemon app.j"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"nodemon": "^2.0.12"
}
}
What might be the reason for this?

Downgrading Nodemon to v2.0.7 seems to work. I don't understand why it broke in the first place.

Related

Nodemon giving an issue

I installed nodemon.
I made changes to my code.
It is stuck at RESTARTING DUE TO CHANGES and doesn't restart the server.
Why is this happening and how to solve it?
>>index.js
const express = require('express');
const app = express();
app.get('', (req, res) => {
res.send('Hello, world!');
})
app.get('./help', (req, res) => {
res.send('Help Page!');
})
const port = 3000;
// const hostName = '127.0.0.1';
app.listen(port, () => {
console.log(`Server is listening on ${port}`);
});
>>package.json
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon index.js"
},
"author": "Sharjeel",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"nodemon": "^2.0.12"
}
}
The problem is with the latest version of the nodemon. The previous or older version runs completely fine without making any issue i.e. nodemon#2.0.7.

Nodemon throwing error: address already in use <port number> on M1 Mac

I'm trying to use nodemon on my macbook and whenever i run
nodemon <script.js>
It gives me this error:
address already in use <PORT NUMBER HERE>
Even if i'm running the script for the very first time. I've tried
npx kill-port <port>
But it doesn't work: it shows that a process was killed but when i try to run nodemon again, i get the same error.
Here's my package.json:
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon server.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"dotenv": "^10.0.0",
"express": "^4.17.1",
"nodemon": "^2.0.7"
}
}
My server.js:
const express = require("express");
const dotenv = require("dotenv");
const app = express();
dotenv.config();
const PORT = process.env.PORT;
app.get("/getRestaurants", (req, res) => {
console.log("Get All Restaurants");
});
app.listen(PORT, () => {
console.log(`Server is up on port ${PORT}`);
});
And my .env:
PORT = 4000;
What could be causing this? I'm on a M1 MBA with bigsur.

Push rejected, failed to compile Node.js app on heroku App

I have added node_modules in .gitignore that's not issue!
How to solve this errors because in engines I have specified version of both.
Here is Code :
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"engines": {
"node":"12.6.2",
"npm":"6.14.4"
},
"scripts": {
"start": "node index.js"
},
"author": "smeet_kothari",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
and this is my index.js file
And Code of index.js file.
const app = express();
app.get('/', (req,res) => {
res.send({hi:'there'});
});
const PORT = process.env.PORT || 5000;
app.listen(PORT);
G:\01) Web Development\10) nodejs project\[FreeCourseSite.com] Udemy - Node with React Fullstack Web Development\MailFeed\server>heroku -v
heroku/7.47.7 win32-x64 node-v12.16.2
Procfile has been added too!
Thanks for solution in advance!
Seems like you have not defined Procfile for the project try it first if still not solved comment the total error appearing in the command line

SyntaxError, cannot use import statement outside a module, occurs even with "type":"module" in package.json

I am trying to use ES6 Modules to import Express. Although I added "type":"module" in my package.json. The error, SyntaxError: Cannot use import statement outside a module, still occurs. I am expecting an answer which does not require to convert into a .ejs extension since wanting to know what's wrong in my code rather than taking an alternative. Note: package.json & server.js are in the same directory.
package.json
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "server.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.10.3",
"nodemon": "^2.0.4"
}
}
Server.js
import express from 'express';
const app = express()
const port = process.env.PORT || 9000
app.get('/', (req, res) => {
res.status(200).send('hello world');
})
app.listen(port, () => {
console.log(`Listening on localhost: ${port}`)
});

Request Hangs in express.js

I have created a brand new express API application and for some reason when I run it (the command is node src/index.js) both requests hang and there is never a response. I have been able to nail it down to the app.use(express.json) line as the culprit. When it is commented out the requests seem to work, but then I do not get access to request body.
const app = express();
app.use(express.json);
app.post("/api/user/register", (req, res) => {
res.send("Ok");
});
app.listen(3000, () => {
console.log("API is up and running!");
});
The contents of my package.json file is as follows:
"name": "api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node src/index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
I am currently running node version 13.2.0. Any suggestions on what to try next? (I'm new to node so any help would be appreciated)
It's supposed to be app.use(express.json()); not app.use(express.json);

Resources