nodemon not working properly

2020-05-19 05:23发布

问题:

I am running my nodejs app by npm start

I just installed nodemon by sudo npm install -g nodemon so that i can get my server restarted when i save changes to files.

But when i try to start the server, something like this

nodemon ./app.js localhost 3000 or nodemon start localhost 3000

I get this as output

LM-SJC-00871929:webapp gdeep$ nodemon ./app.js localhost 3000
28 May 23:34:30 - [nodemon] v1.1.1
28 May 23:34:30 - [nodemon] to restart at any time, enter `rs`
28 May 23:34:30 - [nodemon] watching: *.*
28 May 23:34:30 - [nodemon] starting `node ./app.js localhost 3000`

but when i go to my webpage, i get

Oops! Google Chrome could not connect to localhost:3000. What am i doing wrong?

App.js here http://collabedit.com/t35dy

回答1:

You're running express 4, which has the app.listen call in a different file than app.js. The command you're looking for is nodemon bin/www (localhost and 3000 are not needed in this scenario).

In fact, you can even run nodemon with no args, and it'll read what command needs to be run from scripts.start in package.json (which express generates automatically).



回答2:

Add following code in your code

  1. app.js

    app.listen(3000, function(){
        console.log("info",'Server is running at port : ' + 3000);
    });
    
  2. package.json

    nodemon app.js 
    

Then run npm start from the command line.



回答3:

In my case, I had to install nodemon globally. Use this command to do so..

npm install -g nodemon

If you're using Linux you may need to prefix the command with the sudo keyword for administration access..

sudo npm install -g nodemon


回答4:

try running nodemon ./app.js 3000 or nodemon start 3000



回答5:

For Express.js 4,
use nodemon
or
nodemon bin/www



回答6:

Here's what I did to make nodemon update correctly:

nodemon index.js -L

The -L flag stands for legacyWatch, here's an explanation from the official doc:

In some networked environments (such as a container running nodemon reading across a mounted drive), you will need to use the legacyWatch: true which enables Chokidar's polling.

https://www.npmjs.com/package/nodemon#application-isnt-restarting



回答7:

If you are using express4, the easiest way is to navigate to package.json and change "scripts": { "start": "node ./bin/www" }

to "scripts": { "start": "nodemon ./bin/www" }



回答8:

For Express 4; Just run

nodemon

command (with out any args) on the directory; this works for me.



回答9:

You might also run into the issue of having an empty .nodemonignore.



回答10:

thanks you need to type this after to enter in the folder application with

cd your_project_folder

sudo nodemon bin/www



回答11:

try

npm install --save-dev nodemon

and then in package.json file keep like this

"scripts": {
    "start": "nodemon",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

instead of npx nodemon, which takes more time