express 4.x以后将express命令独立到 express-generator包中,所以想使用express初始化项目目录,可以npm install express-genrator
$ npm install express-generator -g
-g 选项是指安装到全局
查看express命令选项
$ express -h Usage: express [options] [dir] Options: -h, --help 查看帮助信息 -V, --version 查看版本 -e, --ejs 增加ejs模板引擎 (默认模板引擎是jade) --hbs 增加 handlebars 引擎支持 -H, --hogan 增加 hogan.js引擎支持 -c, --css增加 stylesheet 引擎支持(less|stylus|compass) (默认使用css) -f, --force 如果没有该目录则创建
比如初始化myapp这个项目目录
$ express myapp
会在该目录下生成这些文件
create : myapp create : myapp/package.json create : myapp/app.js create : myapp/public create : myapp/public/javascripts create : myapp/public/images create : myapp/routes create : myapp/routes/index.js create : myapp/routes/users.js create : myapp/public/stylesheets create : myapp/public/stylesheets/style.css create : myapp/views create : myapp/views/index.jade create : myapp/views/layout.jade create : myapp/views/error.jade create : myapp/bin create : myapp/bin/www install dependencies: $ cd myapp && npm install run the app: $ DEBUG=myapp ./bin/www
目前新版的express命令会将启动命令放到bin下面www脚本中
./bin/www 执行即可启动node.js,而且会有个默认页面
如果启动报如下错误,listen EADDRINUSE 是端口被占用,杀掉其他node进程启动即可
ivon@IvonMac /data/code/node/myapp$node ./bin/www events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:904:11) at Server._listen2 (net.js:1042:14) at listen (net.js:1064:10) at Server.listen (net.js:1138:5) at Function.app.listen (/data/code/node/myapp/node_modules/express/lib/application.js:556:24) at Object.(/data/code/node/myapp/bin/www:7:18) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12)