const http = require("http");
const mysql = require("mysql");
const querystring = require("querystring");
const co = require("co-mysql");
const url = require("url");
const fs = require("fs");
const check = require("../config/check");
const conn = mysql.createPool({
    host: "localhost",
    port: "3306",
    user: "root",
    password: "root",
    database: "20200329",
})
const myDp = co(conn);
http.createServer(async (req, res) => {
   //跨域处理
    res.setHeader('Access-Control-Allow-Origin', "*");
    let {pathname, query} = url.parse(req.url, true);
    if (pathname === "/reg") {
        let {name, password} = query;
        let errorName = check.checkName(name);
        if (errorName) {
            res.write(errorName);
        } else {
            let errorPassword = check.checkPassword(password);
            if (errorPassword) {
                res.write(errorPassword);
            } else {
                try {
                    let data = await myDp.query(`select username from user_table where username='${name}';`);
                    if (data.length > 0) {
                        res.write("此用户已存在,无法再次注册");
                    } else {
                        await myDp.query(`insert into user_table (username,password) values ('${name}','${password}');`);
                        res.write("注册成功");
                    }
                } catch (e) {
                    res.write("数据库错误");
                }
            }
        }
        res.end();
    } else if (pathname === "/login") {
        let {name, password} = query;
        let errorName = check.checkName(name);
        if (errorName) {
            res.write(errorName);
        } else {
            let errorPassword = check.checkPassword(password);
            if (errorPassword) {
                res.write(errorPassword);
            } else {
                try {
                    let data = await myDp.query(`select ID,password from user_table where username='${name}';`);
                    if (data.length !== 1) {
                        res.write("此用户不存在,无法登陆");
                    } else if (data[0].password !== password) {
                        res.write("密码错误,登陆失败");
                    } else {
                        res.write("登录成功");
                    }
                } catch (e) {
                    res.write("数据库错误");
                }
            }
        }
        res.end();
    } else {
        fs.readFile(`www${pathname}`, (error, buffer) => {
            if (error) {
                res.writeHead(404);
                res.write("no found")
            } else {
                res.write(buffer);
            }
            res.end();
        })
    }
}).listen(8080);