iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
自我挑戰組

線上商店串接tappay系列 第 27

Node.js Client&Server

  • 分享至 

  • xImage
  •  

Node.js寫的是server端的功能,因此我們也可以寫出要根據client的request要給出什麼回應。

這裡我們建立了一個 HTTP 伺服器,並設定了一個函式來處理client端的請求,最後監聽本機上的port3000。

const http = require('http');

const server = http.createServer((req, res) => {
  console.log('request made');
});

// localhost is the default value for 2nd argument
server.listen(3000, 'localhost', () => {
  console.log('listening for requests on port 3000');
});

Req和res分別是request和response物件,我們可以印出其中的內容,
用Req.url會發現client用GET方法請求server。
Res.setHeader能設定回應的內容格式。

console.log(req.url,req.method); 
res.setHeader('Content-Type','text/html');

直接回應一個事先準備的html網頁。

 fs.readFile(path, (err, data) => {
    if (err) {
      console.log(err);
      res.end();
    }
    //res.write(data);
    res.end(data);

接著設定基本的路由,讓server根據不同的url導向不同的網頁,並改寫status code。

let path = './views/';
  switch(req.url) {
    case '/':
      path += 'index.html';
      res.statusCode = 200;
      break;
    case '/about':
      path += 'about.html';
      res.statusCode = 200;
      break;
    case '/about-us':
      res.statusCode = 301;
      res.setHeader('Location', '/about');
      res.end();
      break;
    default:
      path += '404.html';
      res.statusCode = 404;
  }

Net ninja


上一篇
Node.js Stream
下一篇
Node.js express
系列文
線上商店串接tappay30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言