node.js學習之簡易httpserver的搭建
阿新 • • 發佈:2018-11-04
先說一下這個簡易伺服器所能實現的功能:
實現一個簡單的使用者登入、註冊。
直接上圖:
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就先到這裡吧!剛剛開始寫,就當筆記用了!