新手请教代码逻辑问题

来源:5-2 项目:实现登录和注册

慕妹5096010

2020-11-19 21:23

      fs.readFile(`${path}`, (err, data) => {

        if (err) {

          res.end("404")

        } else {

          res.end(data)

        }

      })

读取login文件怎么为什么要写在complete回调函数里面啊?前面不是要判断请求方式method是GET还是POST才会调用complete函数的吗?

写回答 关注

1回答

  • Qiaogh
    2020-11-22 13:11:59

    我觉得这个没有什么可纠结吧,每个人可以自己的逻辑,老师讲的是他自己的逻辑,最终结果一样应该就行,比如我自己写的就跟老师的不同。重在理解吧

    const http = require('http');
    const fs = require('fs');
    const querystring = require('querystring');
    
    const registeredUserInfos = {};
    http.createServer((req, resp) => {
        if (req.method == 'GET') {
            fs.readFile(`./${req.url}`, (err, data) => {
                if (err) {
                    resp.writeHead(404);
                    resp.end('Page not found.');
                } else {
                    resp.end(data);
                }
            });
        } else if (req.method == 'POST') {
            let data = [];
            
            req.on('data', (chunk) => {
                data += chunk;
            });
            
            req.on('end', () => {
                let params = querystring.parse(data);
                if (params.action == 'reg') {
                    if (registeredUserInfos[params.username]) {
                        resp.writeHead(500);
                        resp.end('Invalid user account, Please choose other to try.');
                    else {
                        registeredUserInfos[params.username] = params;
                        resp.end('Registered successfully!');
                    }
                } else if (params.action == 'login') {
                    if (!registeredUserInfos[params.username]) {
                        resp.writeHead(500);
                        resp.end('Invalid user account, Please choose other to try.');
                    } else {
                        let userinfo = registeredUserInfos[params.username];
                        if (params.password == userinfo.password) {
                            resp.end('Login successfully');
                        } else {
                            resp.end('Invalid user password, Please choose other to try.');
                        }
                    }
                } else {
                    resp.writeHead(500);
                    resp.end('Invalid action, Please choose other to try.');
                }
            });
        }
    }).listen(3000);


前端面试加分福音--node基础

从0开始学原生NodeJs

18478 学习 · 70 问题

查看课程

相似问题