博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
express学习笔记
阅读量:6250 次
发布时间:2019-06-22

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

因为在vue.js仿饿了么app中,用到了express路由,所以就学习了express的简单使用,并且记录此文章,来加深自己的印象。

安装

安装并且将express保存到依赖列表里面

npm install express --save

只是安装不添加到依赖列表里面,省了--save即可

npm install express

一个hello word实例

var express = require('express');var app = express();app.get('/user',function(req,res) {  res.end('hello word');})var server = app.listen(3000, function () {  var host = server.address().address; //ip地址  var port = server.address().port;  //端口号  console.log('Example app listening at', host, port);});

上面的代码中引入了express,并且实例化了一个app变量,初始化了一个get请求是请求,这个请求返回的是hello word,这个是一个简单的路由

路由

路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。

app.METHOD(path, [callback...], callback),

  1. app 是 express 对象的一个实例,express()就是一个express的实例。

  2. METHOD 是一个 HTTP 请求方法,express定义了如下请求的方法:get, post, put, head, delete, options, trace, copy, lock, mkcol, move, purge, propfind, proppatch, unlock, report, mkactivity, checkout, merge, m-search, notify, subscribe, unsubscribe, patch, search, 和 connect。

  3. path 是服务器上的路径, 这个路径是我们自己定义的,即访问的url;可以是字符串,正则表达式。

    // get请求根路径      app.get('/',function(req,res) {})      // get请求根路径 /user      app.get('/user',function(req,res) {})      // 匹配以user结尾的。     app.get('/.*user$/',function(req,res) {})
  4. callback 是当路由匹配时要执行的函数,callback可以有多个,callback的参数有req,res,当多个callback是有一个next参数的,如果只有一个callback可以省略next参数。

    app.get('/user/:id', function (req, res,next) {        if(req.params.id==0){          next('route')        }         next();    },function (req,res) {        res.send('Hello World!');    });    app.get('/user/:id', function (req, res) {        res.end('Hello user!');    });

next()表示执行下一个回调函数,next('route'):略过下面的回调函数直接执行下一个路由。上面的例子,当我们在页面输入http://localhost:3000/user/0,输出的是Hello user!,其他的都是输出res.send('Hello World!')

app.all()

app.all是一个特殊的方法,使用app.all方法,对于任何method的请求都会执行。

托管静态资源

app.use(express.static('js'));

在当前目录下面有一个js文件,里面有一个index.js和router.js,我们启动服务的时候,可以直接访问,这就是express的托管静态资源

中间件

中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。

应用级中间件

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

例如:

//定义中间件   router.use(function timeLog(req, res, next) {       console.log('Time: ', Date.now());       next();   });   // 定义网站主页的路由   router.get('/', function(req, res) {       res.send('Birds home page');   });   // 定义 about 页面的路由   router.get('/about', function(req, res) {       res.send('About birds');   })

上面的例子中,router.use定义了一个中间件,无论访问根路由和about路由,都会执行中间件,中间件通过 next() 方法将控制权交给下一个中间件或者路由。

路由级中间件

路由中间件和应用中间件一样,只是路由中间件绑定的是express.Router();使用 router.use() 加载。

var app = express() var appData=require('../data.json'); var seller=appData.seller; //定义路由中间件 var appRouter=express.Router();  appRouter.get('/seller',function(req,res){   res.json({     errno:0,     data:seller   }) }) //加载路由中间件 app.use('/api',appRouter);

通过get方式访问 ,就能访问到返回的json对象,包含erron和data。

参考

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

你可能感兴趣的文章
码条形码属性_条码生成器如何批量生成code 11码
查看>>
和lua的效率对比测试_不同编程语言能耗不同?看这27种语言对比!
查看>>
让某控件失去焦点_常用基本控件测试用例(一)
查看>>
天气模式_今年台风活跃期即将结束!下周天气将开启“大变脸”模式
查看>>
扫码枪关闭常亮模式_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...
查看>>
如何双击打开vivado工程_利用TCL重建vivado工程
查看>>
mysql的引双向链表_Mysql高手系列 - 第22篇:mysql索引原理详解(高手必备技能)
查看>>
mysql in 查询改成_MySQL not in嵌套查询改写成外连接方式
查看>>
mysql community安装_MySQL Community Server 5.7安装详细步骤
查看>>
python处理多行字符串_python多行字符串
查看>>
java冒泡排序_用java写个冒泡排序?
查看>>
linux 开发java_做开发环境的操作系统是 Linux 好还是 Windows 好?
查看>>
java正文提取_Java网页正文提取工具
查看>>
blocked java_使用jstack排查多线程死锁、阻塞
查看>>
centos7 nohup无法保持_CentOS 不间断会话(ssh关闭后如何保证程序继续运行)(nohup和screen)...
查看>>
显示图片java代码_用于显示下载或是显示图片的一段代码
查看>>
java scrip_js java scrip基本语法
查看>>
java 加上天数_java日期时间加上天数 | 学步园
查看>>
java 爬楼梯算法_9.1 爬楼梯
查看>>
java多态 动态绑定_Java JVM 多态(动态绑定)
查看>>