响应对象(res)用于在 Express 应用接收到 HTTP 请求后发送 HTTP 响应。

功能

  • 它将响应发送回客户端浏览器。
  • 它允许您设置新的 Cookie 值,并将其写入客户端浏览器(在跨域规则下)。
  • 一旦使用了 res.send()、res.redirect() 或 res.render(),则不能再次使用,否则将引发未捕获的错误。

响应对象属性

让我们来看一些响应对象的属性。

索引属性描述
1res.app保留了对使用该中间件的 Express 应用实例的引用。
2res.headersSent是一个布尔属性,指示应用是否已发送了响应的 HTTP 头部。
3res.locals指定了一个对象,其中包含了范围限定于请求的响应本地变量。

响应对象方法

以下是一些方法:

响应附加方法

语法:

res.append(field [, value])

此方法将指定的值附加到 HTTP 响应头字段。这意味着如果指定的值不合适,则该方法会进行纠正。

示例:

res.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']); 
res.append('Warning', '199 Miscellaneous warning');

响应附件方法

语法:

res.attachment([filename])

此方法允许您将文件作为附件发送到 HTTP 响应中。

示例:

res.attachment('path/to/js_pic.png');

响应 Cookie 方法

语法:

res.cookie(name, value [, options])

此方法用于将名称设置为值的 Cookie。值可以是字符串或转换为 JSON 格式的对象。

示例:

res.cookie('name', 'Aryan', { domain: '.xyz.com', path: '/admin', secure: true });
res.cookie('Section', { Names: ['Aryan', 'Sushil', 'Priyanka'] });
res.cookie('Cart', { items: [1, 2, 3] }, { maxAge: 900000 });

响应清除 Cookie 方法

语法:

res.clearCookie(name [, options])

顾名思义,clearCookie 方法用于清除指定的 Cookie。

示例:

设置 Cookie:

res.cookie('name', 'Aryan', { path: '/admin' });

清除 Cookie:

res.clearCookie('name', { path: '/admin' });

响应下载方法

语法:

res.download(path [, filename] [, fn])

此方法将路径处的文件作为“附件”传输,并强制浏览器提示用户下载。

示例:

res.download('/report-12345.pdf');

响应结束方法

语法:

res.end([data] [, encoding])

此方法用于结束响应过程。

示例:

res.end();
res.status(404).end();

响应格式方法

语法:

res.format(object)

此方法在请求对象的 Accept HTTP 头部存在时,对其进行内容协商。

示例:

res.format({
 'text/plain': function(){
  res.send('hey');
 },
 'text/html': function(){
  res.send('<h1>hey</h1>');
 },
 'application/json': function(){
  res.send({ message: 'hey' });
 },
 'default': function() {
  // 记录请求并回复 406
  res.status(406).send('Not Acceptable');
 }
});

响应获取方法

语法:

res.get(field)

此方法提供了请求的 HTTP 响应头部,由字段指定。

示例:

res.get('Content-Type');

响应 JSON 方法:

语法:

res.json([body])

此方法以 JSON 格式返回响应。

示例:

res.json(null);
res.json({ name: 'Ajeet' });

响应 JSONP 方法

语法:

res.jsonp([body])

此方法以支持 JSONP 的方式返回响应的 JSON 格式。

示例:

res.jsonp(null);
res.jsonp({ name: 'Ajeet' });

响应链接方法

语法:

res.links(links)

此方法通过将参数的属性作为链接提供,填充响应的 Link HTTP 头部字段。

示例:

res.links({
 next: 'http://api.rnd.com/users?page=5',
 last: 'http://api.rnd.com/users?page=10'
});

响应位置方法

语法:

res.location(path)

此方法用于基于指定的路径参数设置响应的位置 HTTP 头部字段。

示例:

res.location('http://xyz.com');

响应重定向方法

语法:

res.redirect([status,] path)

此方法基于指定的路径重定向到派生的 URL,带有指定的 HTTP 状态。

示例:

res.redirect('http://example.com');

响应渲染方法

语法:

res.render(view [, locals] [, callback])

此方法渲染视图并将渲染后的 HTML 字符串发送到客户端。

示例:

// 将渲染的视图发送到客户端
res.render('index');
// 将本地变量传递给视图
res.render('user', { name: 'Aryan' }, function(err, html) {
 // ...
});

响应发送方法

语法:

res.send([body])

此方法用于发送 HTTP 响应。

示例:

res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<h1>...一些 HTML...</h1>');

响应发送文件方法

语法:

res.sendFile(path [, options] [, fn])

此方法用于传输给定路径处的文件。它根据文件名的扩展名设置 Content-Type 响应 HTTP 头部字段。

示例:

res.sendFile(fileName, options, function (err) {
 // ...
});

响应设置方法

语法:

res.set(field [, value])

此方法用于将 HTTP 头字段的响应设置为指定的值。

示例:

res.set('Content-Type', 'text/plain');
 
res.set({
 'Content-Type': 'text/plain',
 'Content-Length': '123'
});

响应状态方法

语法:

res.status(code)

此方法为响应设置 HTTP 状态。

示例:

res.status(403).end();
res.status(400).send('Bad Request');

响应类型方法

语法:

res.type(type)

此方法将内容类型 HTTP 头部设置为 MIME 类型。

示例:

res.type('.html');       // => 'text/html'
res.type('html');        // => 'text/html'
res.type('json');        // => 'application/json'
res.type('application/json');  // => 'application/json'
res.type('png');         // => image/png:

标签: Nodejs, Nodejs安装教程, Nodejs教程, node, nodejs入门, nodejs入门教程, nodejs进阶, nodejs学习教程, nodejs开发, nodejs指南, nodejs学习指南, nodejs环境配置, nodejs框架