Rumah > pangkalan data > tutorial mysql > Bagaimana untuk melaksanakan fungsi pendaftaran dan log masuk dalam NodeJs+MySQL

Bagaimana untuk melaksanakan fungsi pendaftaran dan log masuk dalam NodeJs+MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-05-29 21:04:04
ke hadapan
1304 orang telah melayarinya

Cara menulis mysql dalam nodejs:

1

2

3

//连接池

let db=mysql.createPool({'配置'})  

db.query(`sql语句`,(err,data)=>{})

Salin selepas log masuk

Dan kata laluan yang disimpan dalam pangkalan data hendaklah ciphertext

1

2

3

4

5

6

7

8

function md5(str){

  let obj=crypto.createHash('md5');

  obj.update(str);

  return obj.digest('hex')

}

function md5_2(str){

  return md5(md5(str))

}

Salin selepas log masuk

Operasi sisi pelayan, pengesahan mudah ditambahkan pada nama pengguna dan kata laluan , tidak sempurna, perlukan penambahbaikan

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

const http=require('http');

const fs=require('fs');

const mysql=require('mysql');

const url=require('url');

const zlib=require('zlib');

const crypto=require('crypto');

  

const _key='bsjhjqbj1;dqwxsxx+';

  

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

  let {pathname,query}=url.parse(req.url,true);

  let {user,password}=query;

  

  switch(pathname){

    case '/reg':

      if(!user){

        res.write('{"err":1,"msg":"用户名不能为空"}');

        res.end();

      }else if(!password){

        res.write('{"err":1,"msg":"密码不能为空"}');

        res.end();

      }else if(!/\w{4,16}$/.test(user)){

        res.write('{"err":1,"msg":"用户名应为大小写字母数字或下划线"}');

        res.end();

      }else if(/['|"]/.test(password)){

        res.write('{"err":1,"msg":"密码非法"}');

        res.end();

      }else{

        db.query(`SELECT username FROM users_table WHERE username='${user}'`,(err,data)=>{

          if(err){

            res.write('{"err":1,"msg":"数据库错误"}');

            console.log(err)

            res.end()

          }else{

            if(data.length>0){

              res.write('{"err":1,"msg":"用户名已存在"}');

              res.end();

            }else{

              res.write('{"err":0,"msg":"注册成功"}');

              db.query(`INSERT INTO users_table (ID,username,password) VALUES (0,'${user}','${md5_2(password)}')`);

              res.end();

            }

          }

        })

      }

      break;

  

    case '/login':

      if(!user){

        res.write('{"err":1,"msg":"用户名不能为空"}');

        res.end();

      }else if(!password){

        res.write('{"err":1,"msg":"密码不能为空"}');

        res.end();

      }else if(!/\w{4,16}$/.test(user)){

        res.write('{"err":1,"msg":"用户名应为大小写字母数字或下划线"}');

        res.end()

      }else if(/["|']/.test(password)){

        res.write('{"err":1,"msg":"密码非法"}');

        res.end();

      }else{

        db.query(`SELECT username,password FROM users_table WHERE username='${user}'`,(err,data)=>{

          if(err){

            res.write('{"err":1,"msg":"数据库错误"}');

            res.end()

          }else if(data.length>0){

            if(md5_2(password)!=data[0].password){

              res.write('{"err":1,"msg":"用户名或密码不正确"}');

              res.end();

            }else{

              res.write('{"err":0,"msg":"登陆成功"}');

              res.end();

            }

          }else{

            res.write('{"err":1,"msg":"用户不存在"}')

          }

        })

      }

    break;

  

    default:

      let rs=fs.createReadStream(`www${pathname}`);

      let gz=zlib.createGzip();

  

      res.setHeader('content-encoding','gzip');

      rs.pipe(gz).pipe(res);

      rs.on('error',err=>{

        res.writeHeader(404);

        res.write('Not Found');

        res.end();

      });

  }

});

  

server.listen(8888);

Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi pendaftaran dan log masuk dalam NodeJs+MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan