1.基本路由概念

路由是指确定应用程序如何响应对特定端点的客户端请求,该请求是URI(或路径)和特定HTTP请求方法(GET,POST等)。

每个路由都可以有一个或多个处理函数,这些函数在路由匹配时执行。

路径定义采用以下结构:

app.METHOD(PATH, HANDLER),
  • app是一个实例express
  • METHOD是一个HTTP请求方法,小写。
  • PATH 是服务器上的路径。
  • HANDLER 是路由匹配时执行的功能。


2.请求前后台数据接受处理

app这里是一个继承过来的实例express对象

app.get(路径,(req,res)=>{})处理get请求;

app.post(路径,(req,res=>{}))处理post请求;

post请求的时候接受数据的时候通过  req.body进行接受;

get 请求的时候接受数据的时候通过  req.query进行接受;

1、res.json([body]) 
发送一个json的响应。这个方法和将一个对象或者一个数组作为参数传递给res.send()方法的效果相同。不过,你可以使用这个方法来转换其他的值到json,例如null,undefined。(虽然这些都是技术上无效的JSON)。

res.json(null);
res.json({user:'tobi'});
res.status().json({error:'message'});

2、res.send([body]) 
发送HTTP响应。body参数可以是一个Buffer对象,一个字符串,一个对象,或者一个数组。比如:

res.send(new Buffer('whoop'));
res.send({some:'json'});
res.send('<p>some html</p>');
res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });

res.send(new Buffer('whoop'));
res.send({some:'json'});
res.send('<p>some html</p>');
res.status().send('Sorry, we cannot find that!');
res.status().send({ error: 'something blew up' });

3、res.send( )和res.json( )的区别

当传递对象或数组时,这两个方法是相同的,但是res.json()也会转换非对象,如null和undefined,这些无效的JSON。

该方法还使用json replaceacer和json spaces的设置,因此您可以使用更多选项格式化JSON。 例如:

app.set('json spaces', 2);
app.set('json replacer', replacer);

------------------------------------------

您可以使用Express app对象的方法定义路由,这些方法对应于HTTP方法; 例如,app.get()处理GET请求和app.post处理POST请求。有关完整列表,请参阅app.METHOD。您还可以使用app.all()来处理所有HTTP方法,并使用app.use()将中间件指定为回调函数(有关详细信息,请参阅使用中间件)。

这些路由方法指定当应用程序收到对指定路由(端点)和HTTP方法的请求时调用的回调函数(有时称为“处理函数”)。换句话说,应用程序“侦听”与指定路由和方法匹配的请求,并且当它检测到匹配时,它调用指定的回调函数。

实际上,路由方法可以有多个回调函数作为参数。使用多个回调函数时,重要的是提供next回调函数的参数,然后next()在函数体内调用以将控制权交给下一个回调。

以下代码是一个非常基本的路由示例。

node环境下express路由,的更多相关文章

  1. Node.js(window)基础(2)——node环境下的模块,模块间调用

    参考:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450241959 ...

  2. node环境下:node_modules里面的文件

    node环境下:node_modules里面的文件 package.json来制定名单,需要哪些npm包来参与到项目中来,npm install命令根据这个配置文件增减来管理本地的安装包. depen ...

  3. 非node环境下的vue.js 实现简单的购物车计算功能 样式请无视

    都说vue的双向数据绑定好用,自己用了下,感觉做购物车没想象中好用.自己的实现如下: <!DOCTYPE html> <html lang="en"> &l ...

  4. node环境下安装vue-cli

    一. node安装 1)如果不确定自己是否安装了node,可以在命令行工具内执行: node -v  (检查一下 版本): 2)如果 执行结果显示: xx 不是内部命令,说明你还没有安装node , ...

  5. node 环境下简单web服务器搭建代码

    零.前置 已经安装 node 环境. 一.代码片段 var http = require('http'); var path = require('path'); var fs = require(' ...

  6. AIX 环境下动态路由

    IBM AIX v5.3操作系统环境下动态路由配置如下: 1,用命令lssrc -S routed和lssrc -S gated分别检查routed和gated子系统是是活动状态.如果这两个子系统为活 ...

  7. vue-cli webpack在node环境下安装使用

    第一步,需要下载并安装node.js以及他的npm组件: 第二步,用node -v;npm -v来测试node.js以及npm是否安装成功(建议用GIT命令行工具,因为GIT是linux系统),如果显 ...

  8. Linux系统多网卡环境下的路由配置

    Linux下路由配置命令 1. 添加主机路由 route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw 192.168 ...

  9. node环境下多种方式“get数据解析”

    1.自己写 const http = require('http'); http.createServer(function(req,res){ var get = {}; if(req.url.in ...

随机推荐

  1. 使用EXE4J和Inno Setup 编译器将java程序打包成windows桌面应用安装程序

    java项目结构如下: Demo是模仿程序快照,主要设计两个按钮:保存快照和恢复快照: 保存快照将对象(窗口)序列化保存下来,后面无论做了什么操作,只要点击恢复快照, 就会读取之前保存的序列化的对象. ...

  2. 在Linux CentOS6系统中安装开源CMS程序OpenCart的教程

    OpenCart是一个开放源码的店面,旨在为您提供灵活和细粒度的在线店面管理.在开始之前,您应该已经在您的Linode上设置了一个LAMP堆栈.您还应该设置主机名. PHP设置 为了使用OpenCar ...

  3. pip install beautifulsoup4.失败

    在学习python爬虫时,用到bs4解析网页,开始遇到安装bs出错 Collecting beautifulsoup4Exception:Traceback (most recent call las ...

  4. 浅谈Vector、ArrayList、LinkedList

    下图是Collection的类继承图 从图中可以看出:Vector.ArrayList.LinkedList这三者都实现了List 接口.所有使用方式也很相似,主要区别在于实现方式的不同,所以对不同的 ...

  5. Qt笔记之QGADGET

    QGADGET宏类似于Q_OBJECT宏,是一个万能容器,至于这个宏所实现的功能,我也不懂,Q_OBJECT宏的功能到时了解一些,我想他们应该差不多,要想使用从Q_OBJECT继承来的类,就得在一开始 ...

  6. java基础知识—循环结构

    1.while 循环 语法: while(循环操作){ 循环操作: } 特点:先判断,再执行:2. == : 用于数字比较 比较的是地址 equals: 用于字符串比较 比较的是字符 3.do-whi ...

  7. Linux 安装python3.4

    不要动现有的python2环境! 不要动现有的python2环境! 不要动现有的python2环境! 默认yum好用 默认环境不全 1. 安装环境 yum -y install zlib zlib-d ...

  8. classPath与PATH

    PATH是window的变量,而不是Java的变量: 通常配置PATH路径是为了找到需要的XX.exe命令,而且配置在用户的变量下面: 例如:JDK中的javac与java命令在cmd中使用,需要把命 ...

  9. call Apply bind详解

    call方法: 语法:call(thisObj,'',''........) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 说明:call方法可以用来代替另一个对象调用一个方法.call方法 ...

  10. [mock open]PyUnit执行单元测试时使用字符串模拟文件对象

    def mock_open(data): from StringIO import StringIO stmp = StringIO(data) return stmp _open = __built ...