node 实现简单的数据交互入门

注册登录的html 代码简单 就不一一讲诉了 直接贴代码javascript

用户名:<input id="username" type="text" name='username' />
    <br/>
    密  码:<input id="password" type="password" name='pswd' />
    <br/>
    <input id="register" type="submit" value="注册" />
    <input id="login" type="submit" value="登录" />
复制代码

登录页面的javascripthtml

window.onload = function(){
        var $username = document.getElementById('username'),
            $password = document.getElementById('password'),
            $login = document.getElementById('login'),
            $register = document.getElementById('register');
        $login.addEventListener('click',function(){
          var uservalue = $username.value;
          var password =  $password.value;
          if (!!uservalue && !!$password) {
            var xhr = new XMLHttpRequest();
            xhr.open('post','http://localhost:8080/login');
            xhr.send(`username=${uservalue}&password=${password}`);
            xhr.onreadystatechange = function() {
              if (xhr.readyState === 4 && xhr.status === 200 ) {
                //逻辑处理
              }
            }
          } 
        })
        $register.addEventListener('click',function(){
          var uservalue = $username.value;
          var password =  $password.value;
          if (!!uservalue && !!$password) {
            var xhr = new XMLHttpRequest();
            xhr.open('post','http://localhost:8080/register');
            xhr.send(`username=${uservalue}&password=${password}`);
            xhr.onreadystatechange = function() {
              if (xhr.readyState === 4 && xhr.status === 200 ) {
               //逻辑处理
              }
            }
          } 
        })
      }
复制代码

下面开始写nodejava

  • 引入相应的模块
    • const http = require('http');
    • const url = require('url');
    • const querystring = require('querystring'); //处理post请求参数
    • const fs =require('fs'); //读取文件模块
  • 存储请求数据
    • const user = {} eg:username:'',password:'';
  • 建立一个服务器
    const server = http.createServer((req,res)=>{
        res.setHeader('Access-Control-Allow-Origin', '*'); //设置请求头跨域
        //post请求
        let str = '';
        req.on('data', (data) => {
            str += data;
        })
        req.on('end', () => {
            const {username, password} = querystring.parse(str); //获取请求参数
        })
        server.listen('8080',()=>{
          console.log('localhost:8080');
        })
    复制代码

完整代码node

const http = require('http');
    const url = require('url');
    const querystring = require('querystring');
    const fs =require('fs');
    const user = {}
    const server = http.createServer((req,res)=>{
      res.setHeader('Access-Control-Allow-Origin', '*');
      const {pathname, query} = url.parse(req.url,true);
      let str = '';
      req.on('data', (data) => {
        str += data;
      })
      req.on('end', () => {
        const {username, password} = querystring.parse(str);
        switch (pathname) {
          case '/register':
            if (!username) {
              res.writeHead(412);
              res.write('{code:412,msg:""}');
            } else if (!password) {
              res.writeHead(412);
              res.write('{code:412,msg:""}');
            } else if (user[username]) {
              res.writeHead(412);
              res.write('{code:412,msg:""}');
            } else {
              user[username] = password;
              res.write('{code:200,msg:"成功"}');
            }
            res.end();
            break;
          case '/login':
            if (!username) {
              res.writeHead(412);
              res.write('{code:412,msg:"请输入用户名"}');
            } else if (!password) {
              res.writeHead(412);
              res.write('{code:412,msg:"请输入密码"}');
            } else if (!user[username]) {
              res.writeHead(412);
              res.write('{code:412,msg:"用户名不存在"}');
            } else if (user[username] !== password) {
              res.writeHead(412);
              res.write('{code:412,msg:"密码错误"}');
            } else {
              res.write('{code:200,msg:"成功"}');
            }
            res.end();
            break;
          default:
            fs.readFile(`user/${pathname}`,(err, data)=>{
              if (err) {
                res.writeHead(404);
                res.write('Not found');
              } else {
                res.write(data);
              }
              res.end();
            })
            break;
        }
      })
    })
    server.listen('8080',()=>{
      console.log('localhost:8080');
    })
复制代码
相关文章
相关标签/搜索