Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
90 views
in Technique[技术] by (71.8m points)

javascript - backend and frontend of http module

I wrote back-end code with HTTP module and test with jquery on HTML simply to check user's register and login, when i submit user info i always received error2 even when i submit the correct user info, i checked the syntax and couldn't found similar question on internet, if you will pardon me(i'm new to this world),thank you for help.

this is my back-end code:

const http = require('http')
const url = require('url')
const querystring = require('querystring')
const fs = require('fs')
// url.parse('/aaa/bbb?a=12&b=5')
// querystring.parse('a=12&b=5')

let users = {}

let server = http.createServer((req, res) => {

  let {
    pathname,
    // user,pass
    query
  } = url.parse(req.url, true)
  console.log(pathname,query)
  
  let str = ''
  req.on('data', chunk => {
    str += chunk
  })
  req.on('end', () => {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("Access-Control-Allow-headers", "*");
    let post = querystring.parse(str)
    // console.log(pathname,query,post)
    let {user,pass} = query
    switch (pathname) {
      case '/reg': 
        if (!user) {
          res.write("{'err': 1,'msg': 'username is required'}")
        } else if (!pass) {
          res.write("{'err': 1,'msg': 'password is required'}")
        } else if (!/^w{8,32}$/.test(user)) {
          res.write("{'err': 1,'msg': 'not valid username'}")
        } else if (/^['|"]$/.test(pass)) {
          res.write("{'err': 1,'msg': 'not valid password'}")
        } else if (users[user]) {
          res.write("{'err': 1,'msg': 'username exists'}")
        } else {
          users[user] = pass
          res.write("{'err': 0,'msg': 'register success'}")
        }
        res.end()
        break
      case '/login': 
        if (!user) {
          res.write("{'err': 1,'msg': 'username is required'}")
        } else if (!pass) {
          res.write("{'err': 1,'msg': 'password is required'}")
        } else if (!/^w{8,32}$/.test(user)) {
          res.write("{'err': 1,'msg': 'not valid username'}")
        } else if (/^['|"]4/.test(pass)) {
          res.write("{'err': 1,'msg': 'not valid password'}")
        } else if (!users[user]) {
          res.write("{'err': 1,'msg': 'user not exist'}")
        } else if (users[user]!=pass) {
          res.write("{'err': 1,'msg': 'username or password not incorrect'}")
        } else {
          res.write("{'err': 0,'msg': 'login success'}")
        }
        res.end()
        break
      default: 
        fs.readFile(`${pathname}`, (err, data) => {
          if (err) {
            res.writeHeader(404)
            res.write('not found')
          } else {
            res.write(data)
          }
          res.end()
        })
    }
  })
})


server.listen(8080, () => {
  console.log("8080 monitoring")
})

and this is front-end code:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>index2</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.js"></script>
  <script type='text/javascript'>
      $(function () {
        
        $('#btn1').click(function () {
          $.ajax({
            url:'http://127.0.0.1:8080/reg',
            data:{user:$('#user').val(),pass:$('#pass').val()},
            dataType: 'json',
            success(data){
              if(data.err){
                alert('error 1',data.msg)
              }else{
                alert('success')
              }
            },error(){
              alert('error 2')
            }
          })
        })
        $('#btn2').click(function () {
          $.ajax({
            url:'http://127.0.0.1:8080/login',
            data:{user:$('#user').val(),pass:$('#pass').val()},
            dataType: 'json',
            success(data){
              if(data.err){
                alert('error 1',data.msg)
              }else{
                alert('success')
              }
            },error(){
              alert('error 2')
            }
          })
        })
      })
  </script>
  
</head>
<body>
      username: <input type="text" id="user" value="enter your username"><br><br>
      password: <input type="password" id="pass" value="enter your password"><br><br>
      <input type="button" value="Submit" id="btn1">
      <input type="button" value="login" id="btn2">
</body>
</html>

enter image description here

question from:https://stackoverflow.com/questions/65859570/backend-and-frontend-of-http-module

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...