博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js 教程第七篇——Express 基础应用
阅读量:6720 次
发布时间:2019-06-25

本文共 2561 字,大约阅读时间需要 8 分钟。

Express

Express 是一个第三方模块,对原生模块封装了一套更灵活、更简洁的应用框架,其在 Node.js 环境的地位和作用好比 jQuery 在前端的地位和作用。

路由

在 BS 架构中,路由的概念都是一样的,可理解为根据客户端请求的 URL 映射到不同的方法实现,更多的一般都是针对 URL 中的路径,或者是参数,又或者是锚点这些信息进行映射。

Express 使用

  • 因为 Express 是第三方模块,所以在使用前要先安装 npm install express
  • 加载模块
var express = require('express');var app = express();
  • 开启服务器,定义端口8080:
app.listen(8080, function(){    console.log('Server running on http://localhost:8080');});

Express -- GET

  • 定义根路由,我们定义端口为 8080,当我们访问::8080/,会自动触发方法,会在页面上显示 Root Page。
  • response.send() 可理解为 response.end(),其中一个不同点在于 response.send() 参数可为对象。
  • 只有 GET 访问能触发
app.get('/', function(request, response){    response.send('Root Page');})
  • 定义 getUsers 路由,当我们访问::8080/getusers,会自动触发方法,会在页面上显示 getUsers Page。
app.get('/getUsers', function(request, response){    response.send('getUsers Page');})
  • Node.js 默认是不能访问静态资源文件(.html、.js、.css、.jpg 等),如果要访问服务端的静态资源文件则要用到方法 sendFile
  • __dirname 为 Node.js 的系统变量,指向文件的绝对路径。
app.get('/index.html', function (req, res) {   res.sendFile( __dirname + "/" + "index.html" );});

Express -- GET 参数接收之 Query Strings

访问地址:http://localhost:8080/getusers?username=dk&age=18,可通过 request.query 来获取参数

app.get('/getUsers', function(request, response){    var params = {        username: request.query.username,        age: request.query.age    }    response.send(params);})

Express -- GET 参数接收之路径方式

访问地址:http://localhost:8080/getusers/admin/18,可通过 request.params 来获取参数

app.get('/getUsers/:username/:age', function(request, response){    var params = {        username: request.params.username,        age: request.params.age    }    response.send(params);})

Express -- POST

  • post 参数接收,可依赖第三方模块 body-parser 进行转换会更方便、更简单,该模块用于处理 JSON, Raw, Text 和 URL 编码的数据。
  • 安装 body-parser npm install body-parser
  • 参数接受和 GET 基本一样,不同的在于 GET 是 request.query 而 POST 的是 request.body
var bodyParser = require('body-parser');// 创建 application/x-www-form-urlencoded 编码解析var urlencodedParser = bodyParser.urlencoded({ extended: false })app.post('/getUsers', urlencodedParser, function (request, response) {    var params = {        username: request.body.username,        age: request.body.age    }   response.send(params);});

Express -- 跨域支持(放在最前面)

app.all('*', function(req, res, next) {    res.header("Access-Control-Allow-Origin", "*");    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");    res.header("X-Powered-By",' 3.2.1')    if(req.method=="OPTIONS") {      res.send(200);/*让options请求快速返回*/    } else{      next();    }});

转载地址:http://wcjmo.baihongyu.com/

你可能感兴趣的文章
redhat Nginx 安装
查看>>
jquery rem 转换【转载】
查看>>
react 取消 eslint
查看>>
通过腾讯地图api获取用户位置限制在指定位置区域
查看>>
Mac 生成public_key
查看>>
数轴上n个点(a0,a1,.....an),长为L的绳子最多能覆盖多少个点。
查看>>
购物车增加、减少商品时动画效果:jQuery.Fly.js插件使用方法
查看>>
0622.发送邮件基本操作
查看>>
【Kylin实战】邮件报表生成
查看>>
@Url.ActionLink 和 @Url.Action
查看>>
SSM配置
查看>>
开发过程中遇到的错误
查看>>
为XShell添加复制粘贴的功能
查看>>
transform
查看>>
【实现高可效的代理模式-Squid】
查看>>
MVC之图片验证码
查看>>
xpath中如何使用变量
查看>>
网络开发之使用Web Service和使用WCF服务
查看>>
asp.net mvc实现简单的无刷新上传图片
查看>>
介绍SAP预留函数创建搜索帮助
查看>>