1. 程式人生 > >node.js學習之簡易httpserver的搭建

node.js學習之簡易httpserver的搭建

先說一下這個簡易伺服器所能實現的功能:

實現一個簡單的使用者登入、註冊。

直接上圖:

1.(沒有註冊之前點選登入的效果)


2.(點選註冊時的截圖如下)


3.(輸入正確的使用者名稱密碼,點選登入時的介面)


4.(輸入錯誤的密碼,點選登入):


以下是伺服器的具體程式碼:

//先是請求了node的 http、fs、url、querystring模組
const http = require("http");  
const fs = require('fs');
const urlLib = require('url');
const querysting = require('querystring');
var users = {};   //users是用來接收json檔案的變數 例如{"liming":"123456","zhangsan":"123456"...}
http.createServer(function(req, res) {

  var obj = urlLib.parse(req.url, true);
  var url = obj.pathname;
  const GET = obj.query;
  //解析資料
  var str = '';  //用來存data
  req.on('data', function(data) {
    str += data;
  });
  req.on('end', function() {
    const POST = querysting.parse(str);

    console.log(url, GET, POST);

    //區分--介面、檔案
if (url == '/user') { //介面 switch (GET.act) { //檢測到有2個事件:reg為註冊事件,login為登入事件 case 'reg': //1.檢查使用者是否存在 if (users[GET.user]) { res.write('{"ok":false,"msg":"此使用者已存在"}'); } else { //2.插入users中 users[GET.user] = GET.pass; res.write('{"ok":true,"msg":"註冊成功"}'); } break; case 'login': if (users[GET.user] == null) { //1.檢查使用者是否存在 res.write('{"ok":false,"msg":"此使用者不存在"}') } else if (users[GET.user] != GET.pass) { //2.檢查使用者密碼 res.write('{"ok":false,"msg":"使用者名稱或密碼錯誤"}'); } else { res.write('{"ok":true,"msg":"登入成功"}'); } break; default: res.write('{"ok":false,"msg":"未知的act"}'); } res.end(); } else { //檔案 //檔案請求 var file_name = './www' + url; fs.readFile(file_name, function(err, data) { if (err) { res.write('404'); } else { res.write(data); } res.end(); }); } }); }).listen(8081);

以上是server.js檔案  ,至於html檔案就是開頭的登入按鈕和註冊按鈕分別加了點選事件,期間用了ajax框架。

ok就先到這裡吧!剛剛開始寫,就當筆記用了!