登陆和注册

首先找到之前做完的nodejs-text,文件如果没有的话可以去我的git仓库里下载
当然我的仓库里是已经修改完的。 ( ̄y▽ ̄)~*
首先我们需要在sever.js文件里面添加上我们的注册页面

else if (path === '/sign_up' ) {
    let string = fs.readFileSync('./sign_up', 'utf8')
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/html;charset=utf-8')
    response.write(string)
    response.end()

添加此代码让我们可以通过/sign_up链接到我们的注册页面,有了链接的地方那么我们就需要准备我们的注册页面了,
注册页面

image.png

点击蓝色代码查看注册代码页
之后引入一个js
代码准备好了,那么我们就需要通过以下代码获得注册者注册的数据和判断邮箱是否正确,两个密码是否一致在sign_up.html添加以下代码


在server.js文件中添加
if else循环中添加一下代码作为判定条件

else if (path === '/sign_up' && method === 'GET') {
    let string = fs.readFileSync('./sign_up', 'utf8')
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/html;charset=utf-8')
    response.write(string)
    response.end()
  } else if (path === '/sign_up' && method === 'POST') {
    readBody(request).then((body)=>{
      let strings=body.split('&')
      let hash ={}
      strings.forEach((string)=>{
        let parts=string.split('=')
        let key = parts[0]
        let value = parts[1]
        hash[key] = value
    })
      let {email,password,password_confirmation}= hash
      if(email.indexOf('@') === -1){
        response.statusCode = 400
        response.setHeader('Content-Type', 'application/json;charset=utf-8')
        response.write(`{
          "errors":{
            "email":"invalid"
          }
        }`)
      }else if(password !== password_confirmation){
        response.write('password not match')
      }else{
        response.statusCode = 200
      }
      
      response.end()
    });

  }

在下方新建函数

function readBody(request){
  return new Promise((resolve,reject)=>{
    let body=[]
    request.on('data')
    request.on('data', (chunk) => {
      body.push(chunk);
    }).on('end', () => {
      body = Buffer.concat(body).toString();
      resolve(body)
    });
  })
}

让我们可以获得有格式的用户注册数据

你可能感兴趣的:(登陆和注册)