express框架--概述/生成器/HTTP模块

责编:menVScode 2017-08-29 11:37 阅读(801)

        Express是一个简洁、灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助开发者创建各种 Web 和移动设备应用。本文将详细介绍express框架

        概述

        官网对Express的描述,它是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架。优点是易上手、高性能、扩展性强

  1、易上手:nodejs最初就是为了开发高性能web服务器而被设计出来的,然而相对底层的API会让不少新手望而却步。express对web开发相关的模块进行了适度的封装,屏蔽了大量复杂繁琐的技术细节,让开发者只需要专注于业务逻辑的开发,极大的降低了入门和学习的成本

  2、高性能:Express仅在web应用相关的nodejs模块上进行了适度的封装和扩展,较大程度避免了过度封装导致的性能损耗

  3、扩展性强:基于中间件的开发模式,使得express应用的扩展、模块拆分非常简单,既灵活,扩展性又强

【安装】

  安装express前,首先安装nodejs,接下来为应用创建一个目录,然后进入此目录并将其作为当前工作目录

$ mkdir myapp
$ cd myapp

        通过 npm init 命令为应用创建一个 package.json 文件

$ npm init

        此命令要求输入几个参数,例如应用的名称和版本。 直接按“回车”键接受默认设置即可,下面这个除外:

entry point: (index.js)

        键入 app.js 或者所希望的名称,这是当前应用的入口文件。如果希望采用默认的 index.js 文件名,只需按“回车”键即可。

        接下来安装 Express 并将其保存到依赖列表中:

$ npm install express --save

        如果只是临时安装 Express,不想将它添加到依赖列表中,只需略去 --save 参数即可:

$ npm install express

        

        入门实例

        在项目根目录下,新建一个启动文件,假定叫做index.js,新建一个public文件夹,并在public目录下,新建index.html

var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8080);

        运行index.js后,访问http://localhost:8080,它会在浏览器中打开public目录的index.html文件。

        当然,也可以在index.js之中,生成动态网页

// index.js
var express = require('express');
var app = express();
app.get('/', function (req, res) {
    res.send('Hello world!');
});
app.listen(3000);

        运行index.js文件后,会在本机的3000端口启动一个网站,网页显示Hello World。

  启动脚本index.js的app.get方法,用于指定不同的访问路径所对应的回调函数,这叫做“路由”(routing)。上面代码只指定了根目录的回调函数,因此只有一个路由记录。实际应用中,可能有多个路由记录。

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello world!');
});
app.get('/customer', function(req, res){
  res.send('customer page');
});
app.get('/admin', function(req, res){
  res.send('admin page');
});

app.listen(3000);

        这时,最好就把路由放到一个单独的文件中,比如新建一个routes子目录。

// routes/index.js
module.exports = function (app) {
  app.get('/', function (req, res) {
    res.send('Hello world');
  });
  app.get('/customer', function(req, res){
    res.send('customer page');
  });
  app.get('/admin', function(req, res){
    res.send('admin page');
  });
};

        然后,原来的index.js就变成下面这样。

// index.js
var express = require('express');
var app = express();
var routes = require('./routes')(app);
app.listen(3000);

        

        生成器

  通过应用生成器工具 express 可以快速创建一个应用的骨架

  [注意]一定要使用全局模式安装express-generator,否则无法使用express命令

$ npm install express-generator -g

        -h 选项可以列出所有可用的命令行选项:

$ express -h
  Usage: express [options] [dir]
  Options:
    -h, --help          output usage information
    -V, --version       output the version number
    -e, --ejs           add ejs engine support (defaults to jade)
        --hbs           add handlebars engine support
    -H, --hogan         add hogan.js engine support
    -c, --css <engine>  add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
        --git           add .gitignore
    -f, --force         force on non-empty directory

        例如,下面的示例就是在当前工作目录下创建一个命名为 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

        然后安装所有依赖包:

$ cd myapp 
$ npm instal

        启动这个应用(MacOS 或 Linux 平台):

$ DEBUG=myapp npm start

        Windows 平台使用如下命令:

> set DEBUG=myapp & npm start

        然后在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了。i

  通过 Express 应用生成器创建的应用一般都有如下目录结构:

.
├── app.js
├── bin
│   └── www
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.jade
    ├── index.jade
    └── layout.jade

7 directories, 9 files


        HTTP模块

        Express框架建立在node.js内置的http模块上。http模块生成服务器的原始代码如下:

var http = require("http");
var app = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello world!");
});

app.listen(3000, "localhost");

        上面代码的关键是http模块的createServer方法,表示生成一个HTTP服务器实例。该方法接受一个回调函数,该回调函数的参数,分别为代表HTTP请求和HTTP回应的request对象和response对象。

        Express框架的核心是对http模块的再包装。上面的代码用Express改写如下:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello world!');
});

app.listen(3000);

        比较两段代码,可以看到它们非常接近。原来是用http.createServer方法新建一个app实例,现在则是用Express的构造方法,生成一个Epress实例。两者的回调函数都是相同的。Express框架等于在http模块之上,加了一个中间层。

http://www.cnblogs.com/xiaohuochai/p/7189074.html

标签: express js 框架
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码