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()在函数体内调用以将控制权交给下一个回调。

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

最新文章

  1. linux cron计划任务
  2. LintCode Binary Tree Preorder Traversal
  3. 从零开始学ios开发(五):IOS控件(2),Slider
  4. 关于Masonry框架(AutoLayout)的用法--面向初学者
  5. LeetCode——Search a 2D Matrix
  6. C#多线程编程实例 螺纹与窗口交互
  7. H264 编解码器架构简单
  8. 纯Lambda实现斐波那契数列
  9. Android布局管理详解(1)—— LinearLayout 线性布局
  10. Android 用 camera2 API 自定义相机
  11. [20180926]共享池中的NETWORK BUFFER.txt
  12. CSS学习(二)
  13. springBoot 全局异常捕捉
  14. 46. Permutations C++回溯法
  15. 机器学习基础&mdash;&mdash;模型参数评估与选择
  16. HTTP 请求未经客户端身份验证方案“Anonymous”授权。
  17. 一种基于Redis的10行代码实现IP频率控制方法
  18. QT中QToolTip样式设置的两种方式
  19. Visual Studio 2010 Express for Windows Phone 永久免费序列号
  20. JUC——线程同步辅助工具类(Semaphore,CountDownLatch,CyclicBarrier)

热门文章

  1. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)
  2. CSS1 !important
  3. windows分驱
  4. java基础知识—运算符和基本选择结构
  5. js事件、事件流以及target、currentTarget、this那些事
  6. ASP.NET Core2.2 IExceptionFilter
  7. Linux 安装python3.4
  8. SpringBoot项目如何打War包
  9. CNN
  10. CentOS 6 RPM安装包下载地址