node.js学习记录第三天——使用ajax简单的注册登录系统

今天除了登录,还想做注册,也不用form表单了,用jquery的ajax方法

1.数据格式

首先还是需要一个json文件,不需要很多数据

{"user":[{"name":"斯忒诺","password":"1"}]}

2.主界面body部分

  <body>
    用户:<input type="text" id="name" value=""><br>
    密码:<input type="text" id="password" value=""><br>
    <button id="register" onclick="re_click()">注册</button>
    <button id="log" onclick="log_click()">登录</button>
  </body>

3.数据传递

首先需要从前端传递用户输入的数据,使用jquery的ajax方法,使用了get的传递方式

      $.ajax(
        {
        url:"/user",
          type: 'get',
        data:{act:"reg",name:na,password:pa},
        success:function(data)
        {
          data=JSON.parse(data)
//因为传递的数据是字符串格式的需要改为object
          if(data.ok=="true")
          {
              alert("注册成功")
          }
          else
          {
            alert("注册失败:"+data.msg)
          }
        },
        error:function()
        {
          alert("通信失败")
        }
      })

那么从后端传递数据,需要使用response.write(),把数据传递到前端,并使用success的回调函数,将数据转换为JSON格式并进行判断处理,传递的数据有两个值,OK以及msg记录是否成功以及原因,比如

res.write('{"ok":"false","msg":"此用户已存在"}')

4.json文件读取与增加

fs.readFile("username.json",function(err,data){
            if(err)
            {
              req.write("404")
            }
            else {
              var params={"name":get.name,"password":get.password}
//增添的项目由注册时用户填写的内容决定,以json中的格式记录下来
              var person = data.toString();
              person = JSON.parse(person)
//将json中已经有的数据取出来,因为是以二进制传输的,所以首先需要转换为字符串,然后转换为JSON
              person.user.push(params)
//将传来的对象push进对象中
              console.log("person.user",person.user)
              var str = JSON.stringify(person)
//因为nodejs的写入文件只认识字符串或者二进制数,所以把json对象转换成字符串重新写入json文件中
              fs.writeFile("username.json",str,function(err)
            {
              if(err)
              console.log(error)
              else {
                res.write('{"ok":"true","msg":"注册成功"}')
              }
              res.end()
            })
            }
          })

5.其余部分

没什么重要的部分了,只有req.end()和fs.readFile()的异步很容易出错,所以在每一个步骤中都单独加入req.end(),虽然会变多,但是不会出错。
res.write()除了在页面中增加内容,也有传递数据的作用

6.全部程序

https://github.com/mengliuchen/login_system

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容