文档章节

nodejs的express框架的response常用返回方式

Mr_river
 Mr_river
发布于 2015/11/25 21:19
字数 849
阅读 892
收藏 1

常用的返回方式有四种

  1. res.json()以json的形式返回数据

  2. res.render(view [, locals] [, callback])返回对应的view和数据,类似于spring的modelandview,此方法可以有回调函数,以处理可能出现的异常

  3. res.send(body) 返回自定义的数据,比如json或者404等状态

  4. res.redirect([status,] path) 这个方法其实不是返回,而是跳转到另外一个url上,类似于spring的redirect

首先还是先说res.json

官方文档
Sends a JSON response. This method is identical to res.send() with an object or array 
as the parameter. However, you can use it to convert other values to JSON, 
such as null, and undefined. (although these are technically not valid JSON).

渣翻译:可以发送一个json响应,这个方法同res.send()一样,同样都是以一个对象或者数组作为参数,你也可以把其他数据转换成json然后发送,例如,null, undefined ,尽管这些值可能不是正确的json

官方例子

res.json(null)     
res.json({ user: 'tobi' })
res.status(500).json({ error: 'message' })    //返回错误码

如果你用ajax请求,可以使用此方法做返回

第二种是res.sender()

这就是spring的modelandview啊

前面是返回对应的视图名称(不加文件后缀),后面就是要返回的数据

官方文档
Renders a view and sends the rendered HTML string to the client. Optional parameters:

locals, an object whose properties define local variables for the view.

callback, a callback function. If provided, the method returns both 
the possible error and rendered string, but does not perform an automated response. 
When an error occurs, the method invokes next(err) internally.
渣翻译: 把渲染视图和html的字符串发送给客户端浏览器,可选参数有
本地变量:发送到此本地变量对应的视图的一个对象
回调函数:返回可能的错误和渲染字符串,但不执行自动响应。当发生错误时,该方法调用next(err)。

官方示例

// send the rendered view to the client
res.render('index');

// if a callback is specified, the rendered HTML string has to be sent explicitly
res.render('index', function(err, html) {
  res.send(html);
});

// pass a local variable to the view
res.render('user', { name: 'Tobi' }, function(err, html) {
  // ...
});

其中index是视图的名称,比如index.jade或者index.ejs等

不适用ajax,直接访问此url,获取返回值和模板,填充对应模板数据

第三个是res.send(),它可以返回自定义的属性

官方文档
Sends the HTTP response.
The body parameter can be a Buffer object, a String, an object, or an Array. 
渣翻译:发送一个http响应
参数可以是缓冲对象,字符串,对象,数则

官方示例

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.redirect

举例说,当你添加了一个帖子,返回一个帖子的id,然后又想直接打开帖子的内容,这个就有了用途,它会跳转到对应的url上,就是重定向

官方文档
Redirects to the URL dervied from the specified path, with specified HTTP status code status. 
If you don’t specify status, the status code defaults to “302 “Found”.
渣翻译:重定向到从指定的路径的URL,与指定的HTTP状态代码状态。如果不指定状态,该状态代码默认为302。

官方示例

res.redirect('/foo/bar');
res.redirect('http://example.com');
res.redirect(301, 'http://example.com');
res.redirect('../login');

这方法就是让你去重定向的。



© 著作权归作者所有

Mr_river
粉丝 22
博文 14
码字总数 9772
作品 0
南京
私信 提问
express快速入门——实现一个服务器

express是基于Node.js平台的,web开发框架。他对Node.js搭建服务器的常用操作封装了一套简易的API,使我们可以快速的搭建出一个服务器。同时express引入了中间件的概念,可以让我们更好的组织...

再见骷颅王
09/17
0
0
express框架应用接入阿里云函数计算

由于业务需要接触阿里云函数计算,为保证已有的 nodejs 应用迁移至阿里云函数计算。经过两天的摸索之后得到一些 express.js 应用迁移至函数计算的一些方法。 涉及技术及框架: nodejs 阿里云...

余地乐
2018/06/06
0
0
Nodejs express、html5实现拖拽上传

Nodejs express、html5实现拖拽上传 一、前言 文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传。给用户体验带来很大问题...

james_laughing
2015/06/02
178
0
浅析Express中的路由与应用模式

1. 引言 Express是一个基于Node.js的轻量级web开发框架,具有体积小,使用灵活等特点。查看Express的源码,如果不计供使用的中间件,主体框架只有一千余行代码,非常简练。 Express模型的核心...

solarpig
2018/07/16
0
0
nodejs开发——express框架学习

版权声明:本文为博主原创文章,欢迎分享到其它技术社区,分享请标明出处: https://blog.csdn.net/CHENYUFENG1991/article/details/54800302 在我们实际开发项目时,总是会用一些框架,而不...

乞力马扎罗的雪CYF
2017/01/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2684亿!阿里CTO张建锋:不是任何一朵云都撑得住双11

“不是任何一朵云都能撑住这个流量。中国有两朵云,一朵是阿里云,一朵叫其他云。”11月11日晚,阿里巴巴集团CTO张建锋表示,“阿里云不一样,10年前我们从第一行代码写起,构建了中国唯一自...

阿里云官方博客
5分钟前
1
0
Spark自定义外部数据源

背景:有时候我们需要定义一个外部数据源,然后用spark sql的方式来处理。这样的好处有2点: (1)定义了外部数据源后,用起来很简洁,软件架构清晰,通过sql方式直接使用。 (2)容易分层分...

守望者之父
8分钟前
1
0
电磁兼容不应空论 越实践越知深浅

在电子行业中,电子工程师极为熟悉的就是EMC电磁兼容性测试的各项规范。其实大多工程师所了解的电磁兼容性一般来说就是:设备或系统在其电磁环境中能正常工作,且不对该环境中任何事物构成不...

demyar
9分钟前
2
0
16、SpringMVC拦截器

拦截定义 定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。 public class HandlerInterceptor1 implements HandlerInterceptor{ public boolean preHandle(HttpServletR......

快乐的瓶子
9分钟前
1
0
顺时针打印矩阵

public class Code_06_PrintMatrixSpiralOrder {public static void spiralOrderPrint(int[][] matrix) {int tR = 0; //左上角的行int tC = 0; //左上角的列int dR = ma......

Garphy
11分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部