Express框架

Reads: 2061 Edit

Express 简介

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

使用 Express 可以快速地搭建一个完整功能的网站。

Express 框架核心特性:

可以设置中间件来响应 HTTP 请求。

定义了路由表用于执行不同的 HTTP 请求动作。

可以通过向模板传递参数来动态渲染 HTML 页面。

安装 Express

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

cnpm install express --save

npm install express --save

以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。

安装完后,我们可以查看下 express 使用的版本号:

npm list express

第一个 Express 框架实例

接下来我们使用 Express 框架来输出 "Hello World"。

以下实例中我们引入了 express 模块,并在客户端发起请求后,响应 "Hello World" 字符串。

创建 express_demo.js 文件,代码如下所示:

var express = require('express');
var app = express();
 
app.get('/', function (req, res) {
   res.send('Hello World');
})
 
var server = app.listen(8888, function () {
 
  var host = server.address().address
  var port = server.address().port
 
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
 
})

执行以上代码:

$ node express_demo.js 

在浏览器中访问 http://127.0.0.1:8888

GET 方法

以下实例演示了在表单中通过 GET 方法提交两个参数,我们可以使用 server_get.js 文件内的 process_get 路由器来处理输入: index_get.html


<html>
    <body>
    <form action="http://127.0.0.1:8888/process_get" method="GET">
    First Name: <input type="text" name="first_name">  <br>
     
    Last Name: <input type="text" name="last_name"> <br>
    <input type="submit" value="Submit">
    </form>
    </body>
    </html>

servers_get.js


var express = require('express');
var app = express();
 
app.use('/public', express.static('public'));
 
app.get('/index_get.html', function (req, res) {
   res.sendFile( __dirname + "/" + "index_get.html" );
})
 
app.get('/process_get', function (req, res) {
 
   // 输出 JSON 格式
   var response = {
       "first_name":req.query.first_name,
       "last_name":req.query.last_name
   };
   console.log(response);
   res.end(JSON.stringify(response));
})
 
var server = app.listen(8888, function () {
 
  var host = server.address().address
  var port = server.address().port
 
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
 
})

执行以上代码:

node servers_get.js 

浏览器访问 http://127.0.0.1:8888/index_get.html

POST 方法

以下实例演示了在表单中通过 POST 方法提交两个参数,我们可以使用 server_post.js 文件内的 process_post 路由器来处理输入: index_post.html

<html>
    <body>
    <form action="http://127.0.0.1:8888/process_post" method="POST">
    First Name: <input type="text" name="first_name">  <br>
     
    Last Name: <input type="text" name="last_name"> <br>
    <input type="submit" value="Submit">
    </form>
    </body>
    </html>
    

servers_post.js


var express = require('express');
var app = express();
var bodyParser = require('body-parser');
 
// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false })
 
app.use('/public', express.static('public'));
 
app.get('/index_post.html', function (req, res) {
   res.sendFile( __dirname + "/" + "index_post.html" );
})
 
app.post('/process_post', urlencodedParser, function (req, res) {
 
   // 输出 JSON 格式
   var response = {
       "first_name":req.body.first_name,
       "last_name":req.body.last_name
   };
   console.log(response);
   res.end(JSON.stringify(response));
})
 
var server = app.listen(8888, function () {
 
  var host = server.address().address
  var port = server.address().port
 
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
 
})

执行以上代码:

$ node servers_post.js

浏览器访问 http://127.0.0.1:8888/index_post.html

关于作者

王硕,网名信平,十多年软件开发经验,业余架构师,精通Java/Python/Go等,喜欢研究技术,著有《PyQt 5 快速开发与实战》《Python 3.* 全栈开发》,多个业余开源项目托管在GitHub上,欢迎微博交流。


Comments

Make a comment

www.ultrapower.com ,王硕的博客,专注于研究互联网产品和技术,提供中文精品教程。 本网站与其它任何公司及/或商标无任何形式关联或合作。