1. 程式人生 > >node.js初使用之使用express外掛快速搭建登入註冊

node.js初使用之使用express外掛快速搭建登入註冊

首先,介紹些express,express是基於node.js平臺快速,開放,極簡的web開發框架,express 便於我們快速的開發node api介面
得保證安裝了node.js
在sd 這裡插入圖片描述下載好以後,新建server.js檔案

//引入模組
const express = require('express');
//獲取express物件
const url = require('url');
const fs = require('fs');
const path = require('path');
var bodyParser = require('body-parser')
const app = express();
app.use(bodyParser.urlencoded({extended:false}))
//解析post資料,僅限於 x-www-form-urlencode
app.use(bodyParser.json())
// 解析post 資料的json格式
// app.use(cors());
//get方法,第一個引數為url中的path,req請求物件,res響應物件  
/* app.get('/', (req, res) => {
    res.send('你好')
})
app.get('/login', (req, res) => {
    res.send('歡迎登陸')
}) */
// 註冊
// 獲取引數
// 儲存資料
app.get('/home/reg', (req, res) => {
    console.log(req.query);//{ us: 'wangyi', ps: '123' }
    console.log(req.url);///home/reg?us=wangyi&ps=123
    // 解析url,獲取,請求search的api

    let search=url.parse(req.url).search;
    fs.appendFile(path.join(__dirname,'./user.txt'),search,(err)=>{
        //下面不加return的會報錯,res.send只能傳送一次,也可以使用else。不讓他重複傳送就行了
        if(err){return res.send('註冊失敗')}
        res.send('註冊成功')
    })
    /* console.log(search);//?us=wangyi&ps=123
    res.send('歡迎註冊') */
})
/* 
    登陸邏輯
    獲取使用者內容
    讀取檔案內容
    對比
*/
    app.post('/home/login',(req,res)=>{
        // console.log('哈哈哈哈')
        //let query=url.parse(req.url).query;
        // 判斷使用者內容
        fs.readFile(path.join(__dirname,'./user.txt'),'utf8',(err,data)=>{
            if(err){return res.send({err:-1,msg:'登陸失敗'})}
            //split表示以?號切割
            let array=data.split('?')
            // 判斷使用者內容是否存在
            console.log(array,query)
            if(array.indexOf(query)===-1){
                res.send({err:-2,msg:'使用者名稱或者密碼錯誤'})
                console.log(array.indexOf(query),query)
            }else{
                res.send({err:0,msg:'登陸成功'})
            }
        });
    })
    /* 
        api  介面返回資料的標準格式
        { 
            err:-1,//狀態值    判斷介面的狀態
            msg:"資訊",
            data:'資料'
        }
        post方法資料在訊息體裡 body   req.body
        get方法  資料在url           req.query
    */

    // post   資料介面
app.post('/home/test',(req,res)=>{
    console.log(req.body)
    res.send('ok')
})
app.listen(3000, () => {
     console.log("server start in port"+3000);   
})
//以上監聽一個埠 開啟一個伺服器  主機是localhost  埠3000 後面跟path