初次使用并安装express

      初次使用并安装express无评论

安装 Nodejs

Nodejs官网根据自己的操作系统下载对应的安装包并安装。我们就有了NodeJS和npm环境。npm是Node的包管理工具,会在安装NodeJS时一并安装。可以用以下命令查看版本号验证我们的安装成功与否:

1
2
3
4
sunjingdeMacBook-Pro:microblog sunjing$ node -v
v0.12.2
sunjingdeMacBook-Pro:microblog sunjing$ npm -v
2.7.4

安装 express-generator

我们使用express作为开发框架,与1版不同,新版的express已经不可以使用:

1
express -t ejs microblog

来快速建立网站结构,而是要额外安装express-generator来生成网站框架。

1
npm install -g express-generator

-g‘ 参数表示全局安装,这样我们就可以直接在命令行上使用了。

创建项目

创建框架

在要存放项目的目录打开终端或命令行,使用以下命令建立网站框架:

1
express -e microblog

‘-e’ 参数表示使用ejs作为模板引擎,如不加会默认使用jade。
执行命令后会看到如下结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sunjingdeMacBook-Pro:~ sunjing$ express -e microblog
   create : microblog
   create : microblog/package.json
   create : microblog/app.js
   create : microblog/public
   create : microblog/public/javascripts
   create : microblog/public/images
   create : microblog/public/stylesheets
   create : microblog/public/stylesheets/style.css
   create : microblog/routes
   create : microblog/routes/index.js
   create : microblog/routes/users.js
   create : microblog/views
   create : microblog/views/index.ejs
   create : microblog/views/error.ejs
   create : microblog/bin
   create : microblog/bin/www
   install dependencies:
     $ cd microblog && npm install
   run the app:
     $ DEBUG=microblog:* ./bin/www

编辑依赖项

打开项目目录,找到package.json文件,将其中的依赖项修改如下,在默认的依赖项里添加上我们后面将会用到的一些模块。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"dependencies": {
  "body-parser""~1.12.0",
  "cookie-parser""~1.3.4",
  "debug""~2.1.1",
  "ejs""~2.3.1",
  "express""~4.12.2",
  "express-session":"*",
  "morgan""~1.5.1",
  "serve-favicon""~2.2.0",
  "mongodb":"*",
  "connect-mongo":"*",
  "connect-flash":"*",
  "log4js":"*"
}

关于依赖项版本号的书写规则可以查看Difference between tilde(~) and caret(^) in package.json,需要注意的是虽然前面我们已经全局安装了express-generator,这里我们仍然需要本地安装express模块。

安装依赖项

好啦,现在可以安装我们上面列出的依赖项了,在项目目录里运行如下命令,即会多出来一个node_modules目录,存放了各依赖模块。

1
sunjingdeMacBook-Pro:microblog sunjing$ npm install

运行项目

在新的express框架下,1版上用的

1
node app.js

启动命令已经不再适用,要改用

1
2
3
4
sunjingdeMacBook-Pro:microblog sunjing$ npm start
> microblog@0.0.0 start /Users/sunjing/microblog
> node ./bin/www

为什么呢?因为在package.json中有这样配置

1
2
3
"scripts": {
"start""node ./bin/www"
}

所以用 npm start 命令等同于:

1
sunjingdeMacBook-Pro:microblog sunjing$ node ./bin/www

 

我们后面使用forever管理进程的时候还会提到这里。
这时候我们已经可以在浏览器里用3000端口http://localhost:3000/查看我们的网站页面了。

打开 app.js

 app.js

其中

1
2
var routes = require('./routes/index');
var users = require('./routes/users');

表示引用routes文件夹下的index.js和users.js

1
2
app.use('/', routes);
app.use('/users', users);
// 挂载至 / 的中间件,任何指向 / 的请求都会执行它
// 挂载至 /users 的中间件,任何指向 /users 的请求都会执行它
这里还有应用级中间件、路由级中间件(区别待查。。。欢迎交流)
应用级中间件

应用级中间件绑定到 app 对象 使用 app.use() 和 app.METHOD(), 其中, METHOD 是需要处理的 HTTP 请求的方法,例如 GET, PUT, POST 等等,全部小写。例如:

 app.use

    路由级中间件

路由级中间件和应用级中间件一样,只是它绑定的对象为 express.Router()

 router.use

发表评论

电子邮件地址不会被公开。 必填项已用*标注