node.js接口

新建一个文件夹,在此文件夹下打开cms,或者vscode的终端,输入npm init初始化一个项目,输入一些基本信息。在这里插入图片描述
一直点回车就好了
写node.js接口之前要了解接口文档
在这里插入图片描述
首先先写ajax请求

let xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4 && xhr.status == 200){
                    console.log(xhr.responseText)
                    fun(xhr.responseText)
                }
            }
            xhr.open("POST","接口名",true)
            xhr.setRequestHeader("Content-Type","application/javascript")
            xhr.send("username=" + uname + "&userpwd=" + upwd)

xhr.responseText获取后台传出来的数据
获取要用的模板

const http = require("http");
const fs = require("fs");
const url = require("url");
const querystring = require("querystring");

设置静态伺服

if((pathname == "/" || pathname=="/register.html") && req.method == "GET"){
        fs.readFile("./pages/register.html","utf8",(err,data)=>{
            if(err){
                fs.readFile("./pages/404.html","utf8",(err,data)=>{
                    if(err){
                        return res.end()
                    }
                    res.writeHead(200,{'Content-type':'text/html'})
                    res.end(data)
                    return;
                })
            }
            res.writeHead(200,{'Content-type':'text/html'})
            res.end(data)
        })
    }else if(pathname == "/404.html" &&req.method == "GET"){
        fs.readFile("./pages/404.html","utf8",(err,data)=>{
            res.writeHead(200,{'Content-type':'text/html'})
            res.end(data)
        })
    }else if(pathname == "/login.html" &&req.method == "GET"){
        fs.readFile("./pages/login.html","utf8",(err,data)=>{
            res.writeHead(200,{'Content-type':'text/html'})
            res.end(data)
        })
    }else if(pathname == "/index.html" &&req.method == "GET"){
        fs.readFile("./pages/index.html","utf8",(err,data)=>{
            res.writeHead(200,{'Content-type':'text/html'})
            res.end(data)
        })
    }

调用接口

if(pathname=="/register" && req.method =="POST")

把数据进行处理然后通过 res.end()返回给前台,ajax接收渲染到页面

let data = ""   
        req.on("data",(chunk)=>{
            data  += chunk//chunk是一个个字节码
        })
        req.on("end",()=>{
            console.log(data)
            let obj = querystring.parse(data);
            fs.readFile("./data/user.json","utf8",(err,data)=>{
                if(err){
                    return
                }
                let arr = JSON.parse(data);
                for(let i= 0;i<arr.length;i++){
                    if(arr[i].username == obj.username){
                        res.end("0")
                        return;
                    }
                }
                arr.push(obj);
                let arr_str = JSON.stringify(arr);
                fs.writeFile("./data/user.json",arr_str,'utf8',(err)=>{
                    if(err){
                        res.end("3")
                        return;
                    }
                    res.end("1")
                })
            })
        })
    }
    else if(pathname == "/login" && req.method == "GET"){
        console.log(query)
        fs.readFile("./data/user.json","utf8",(err,data)=>{
            if(err){
                res.end("3")
                return;
            }
            let dataObj = JSON.parse(data);
            for(let i =0;i<dataObj.length;i++){
                if(dataObj[i].username == query.username){
                    if(dataObj[i].userpwd == query.userpwd){
                        res.end("1");
                        return;
                    }else{
                        res.end("2")
                        return;
                    }
                }
            }
            res.end("0")
        })
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值