Difference between `npm start` & `node app.js`, when starting app?

I have installed an application using the command express new 'filename'. I have just learned that you can start an application using:

npm start

Thus far I have used:

node app.js

to start my server. Anyone know what the difference is between the two? Thanks.

From the man page, npm start:

runs a package's "start" script, if one was provided. If no version is specified, then it starts the "active" version.

Admittedly, that description is completely unhelpful, and that's all it says. At least it's more documented than socket.io.

Anyhow, what really happens is that npm looks in your package.json file, and if you have something like

"scripts": { "start": "coffee server.coffee" }

then it will do that. If npm can't find your start script, it defaults to:

node server.js