使用express-generator初始化你的项目目录

时间:2024-08-06 15:05:08

express 4.x以后将express命令独立到 express-generator包中,所以想使用express初始化项目目录,可以npm install express-genrator

1
$ npm install express-generator -g

-g 选项是指安装到全局

查看express命令选项

1
2
3
4
5
6
7
8
9
10
11
12
13
$ express -h
  Usage: express [options] [dir]
  Options:
    -h, --help          查看帮助信息
    -V, --version       查看版本
    -e, --ejs           增加ejs模板引擎 (默认模板引擎是jade)
        --hbs           增加 handlebars 引擎支持
    -H, --hogan         增加 hogan.js引擎支持
    -c, --css <engine>  增加 stylesheet 引擎支持(less|stylus|compass) (默认使用css)
    -f, --force         如果没有该目录则创建

比如初始化myapp这个项目目录

1
2
$ express myapp

会在该目录下生成这些文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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进程启动即可

Shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.<anonymous> (/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)