NodeJS cơ bản cho người mới bắt đầu

Bài 17: NodeJS - Response

Đối tượng res biểu diễn HTTP Response mà ứng dụng Express gửi phản hồi khi nhận một HTTP Request.

Thuộc tính của Response trong Node.js

Bảng sau liệt kê một số thuộc tính của đối tượng Response trong Node.js.
  • res.app 
    Thuộc tính này giữ một tham chiếu tới ứng dụng Express mà đang sử dụng Middleware.
  • res.headersSent 
    Giá trị true, false để chỉ rằng ứng dụng có phải đã gửi HTTP Header cho Response hay không.
  • res.locals 
    Một đối tượng chứa các biến cục bộ của Response trong phạm vi Request.

Phương thức của Response trong Node.js

Phương thức res.append(field [, value])
res.append(field [, value])
Phương thức này phụ thêm một giá trị cụ thể tới trường HTTP Header của Response. Ví dụ:
res.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']); 
 res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly'); 
 res.append('Warning', 'Qua nhieu thong tin hon tap');
Phương thức res.attachment([filename])
res.attachment([filename])
Phương thức này được sử dụng để gửi một File dưới dạng như là một Attachment trong HTTP Response. Ví dụ:
res.attachment('path/to/logo.png');
Phương thức res.cookie(name, value [, options])
res.cookie(name, value [, options])
Phương thức này được sử dụng để thiết lập tên của Cookie thành value. Tham số value có thể là một chuỗi hoặc một đối tượng được chuyển đổi thành dạng JSON. Ví dụ:
res.cookie('name', 'tobi', { omain: '.example.com', path: '/admin', secure: true}); 
 res.cookie('cart', {items: [1,2,3] }); 
 res.cookie('cart', {items: [1,2,3] }, {maxAge: 900000});
Phương thức res.clearCookie(name [, options])
res.clearCookie(name [, options])
Phương thức này được sử dụng để xóa các Cookie cụ thể được xác định bởi tham số name. Ví dụ:
res.cookie('name', 'tobi', { path: '/admin' }); 
 res.clearCookie('name', { path: '/admin' });
Phương thức res.download(path [, filename] [, fn])
res.download(path [, filename] [, fn])
Phương thức này được sử dụng để truyền File tại path đã cho dưới dạng một Attachment. Nói chung, trình duyệt sẽ nhắc người dùng để download. Ví dụ:
res.download('/report-12345.pdf'); 
 res.download('/report-12345.pdf', 'report.pdf'); 
 res.download('/report-12345.pdf', 'report.pdf', function(err){ });
Phương thức res.end([data] [, encoding])
res.end([data] [, encoding])
Phương thức này được sử dụng để kết thúc tiến trình xử lý Response. Ví dụ:
res.end(); 
 res.status(404).end();
Phương thức res.format(object)
res.format(object)
Phương thức này được sử dụng để thực hiện định dạng phần Accept HTTP Header trên đối tượng Request khi biểu diễn. Ví dụ:
res.format({
   'text/plain': function(){
     res.send('hey');
   },
 
   'text/html': function(){
     res.send('
 
 hey
 
 ');
   },
 
   'application/json': function(){
     res.send({ message: 'hey' });
   },
 
   'default': function() {
     // log phan Request va phan hoi voi code 406
     res.status(406).send('Not Acceptable');
   }
 });
Phương thức res.get(field)
res.get(field)
Phương thức này được sử dụng để trả về một trường nào đó trong HTTP Response Header. Ví dụ:
res.get('Content-Type');
Phương thức res.json([body])
res.json([body])
Phương thức này được sử dụng để gửi một phản hồi dưới định dạng JSON. Ví dụ:
res.json(null) res.json({ user: 'tobi' }) 
 res.status(500).json({ error: 'message' })
Phương thức res.jsonp([body])
res.jsonp([body])
Phương thức này được sử dụng để gửi một phản hồi dưới dạng định dạng JSON với sự hỗ trợ của JSONP. Ví dụ:
res.jsonp(null)
 res.jsonp({ user: 'tobi' })
 res.status(500).jsonp({ error: 'message' })
Phương thức res.location(path)
res.location(path)
Phương thức này được sử dụng để thiết lập trường Location của HTTP Header dựa trên tham số path đã cho. Ví dụ:
res.location('/foo/bar');
 res.location('foo/bar');
 res.location('http://example.com');
Phương thức res.redirect([status,] path)
res.redirect([status,] path)
Phương thức này được sử dụng để redirect tới một URL từ một đường truyền path cụ thể, với một Status Code nào đó. Ví dụ:
res.redirect('/foo/bar');
 res.redirect('http://example.com');
 res.redirect(301, 'http://example.com');
Phương thức res.render(view [, locals] [, callback])
res.render(view [, locals] [, callback])
Phương thức này được sử dụng để render một view và gửi chuỗi HTML đã được render tới Client. Ví dụ:
// Gui mot view toi Client
 res.render('index');
 
 // Truyen mot bien cuc bo toi view
 res.render('user', { name: 'Tobi' }, function(err, html) {
 // ...
 });
Phương thức res.send([body])
res.send([body])
Phương thức này được sử dụng để gửi HTTP Response. Ví dụ:
res.send(new Buffer('whoop'));
 res.send({ some: 'json' });
 res.send('
 some html');
Phương thức res.sendFile(path [, options] [, fn])
res.sendFile(path [, options] [, fn])
Phương thức này được sử dụng để truyền tải File tại địa chỉ path đã cho. Thiết lập Content-Type dựa trên phần đuôi của tên file. Ví dụ:
res.sendFile(fileName, options, function (err) {
 // ...
 });
Phương thức res.sendStatus(statusCode)
res.sendStatus(statusCode)
Phương thức này được sử dụng để thiết lập Status Code và gửi biểu diễn chuỗi của nó dưới dạng như là phần body của Response. Ví dụ:
res.sendStatus(200); // tuong duong voi phuong thuc res.status(200).send('OK')
 res.sendStatus(403); // tuong duong voi phuong thuc res.status(403).send('Forbidden')
 res.sendStatus(404); // tuong duong voi phuong thuc res.status(404).send('Not Found')
 res.sendStatus(500); // tuong duong voi phuong thuc res.status(500).send('Internal Server Error')
Phương thức res.set(field [, value])
res.set(field [, value])
Phương thức này được sử dụng để thiết lập trường field của HTTP Header tới giá trị value. Ví dụ:
res.set('Content-Type', 'text/plain');
 
 res.set({
 'Content-Type': 'text/plain',
 'Content-Length': '123',
 'ETag': '12345'
 })
Phương thức res.status(code)
res.status(code)
Phương thức này được sử dụng để thiết lập HTTP Status cho Response. Ví dụ:
res.status(403).end();
 res.status(400).send('Bad Request');
 res.status(404).sendFile('/absolute/path/to/404.png');
Phương thức res.type(type)
res.type(type)
Phương thức này được sử dụng để thiết lập Content-Type của HTTP Header thành kiểu MIME type. Ví dụ:
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: