1.基本路由概念
路由是指确定应用程序如何响应对特定端点的客户端请求,该请求是URI(或路径)和特定HTTP请求方法(GET,POST等)。
每个路由都可以有一个或多个处理函数,这些函数在路由匹配时执行。
路径定义采用以下结构:
app.METHOD(PATH, HANDLER),
app
是一个实例express
。METHOD
是一个,小写。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(500).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('some html
');res.status(404).send('Sorry, we cannot find that!');res.status(500).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请求。有关完整列表,请参阅。您还可以使用来处理所有HTTP方法,并使用将中间件指定为回调函数(有关详细信息,请参阅)。
这些路由方法指定当应用程序收到对指定路由(端点)和HTTP方法的请求时调用的回调函数(有时称为“处理函数”)。换句话说,应用程序“侦听”与指定路由和方法匹配的请求,并且当它检测到匹配时,它调用指定的回调函数。
实际上,路由方法可以有多个回调函数作为参数。使用多个回调函数时,重要的是提供next
回调函数的参数,然后next()
在函数体内调用以将控制权交给下一个回调。
以下代码是一个非常基本的路由示例。