为什么http://localhost:8080/login.html会报404

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

慕神4155339

2020-05-21 08:12

const http=require('http')

const url=require('url')

const querystring=require('querystring')

const fs=require('fs')

let user={

    admin: 123456

}

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

    let path,get,post

    if (req.method=='GET'){

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

        path=pathname

        get=query

        complete()

    }if (req.method=='POST'){

        let arr=[]

        req.on('data',buffer={

            

        })

        req.on('end',()=>{

            post=querystring.parse(Buffer.concat(arr).toString())

        })

        complete()

    }

    function complete(){

        if (path=='/login'){

            res.writeHead(200,{

                "content-type":"text/plain;charset=utf-8"

            })

            let {username,password}=get

            if (!user[username]){

                res.end(JSON.stringify({

                        err: 1,

                        msg: '用户名不存在'

                    })

                )

            }else if(user[username]!=password){

                res.end(JSON.stringify({

                    err: 1,

                    msg: '密码错误'

                    })

                )

            }else{

                res.end(JSON.stringify({

                    err: 0,

                    msg: '登录成功'

                    })

                )

            }

        }else if(path=='/reg'){

            res.writeHead(200,{

                "content-type":"text/plain;charset=utf-8"

            })

            let {username,password}=post

            if(user[username]){

                res.end(JSON.stringify({

                    err: 1,

                    msg: '用户名已经存在'

                    })

                )

            }else{

                res.end(JSON.stringify({

                    err: 0,

                    msg: '注册成功'

                    })

                )

            }

        }else{

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

                if (err){

                    res.end('404')

                }else{

                    res.end(data)

                }

            })

        }

    }

}).listen(8080)


写回答 关注

1回答

  • xue5hen
    2020-05-24 13:48:46

    1、你得把你开发时的文件目录结构发出来,不然没法准确分析。

    2、仅仅针对上述你提供的信息来分析的话,目测应该是文件目录不对,需要核实两点:

    1)上述js文件同级目录下是否存在“www”文件夹,且该文件夹下存在“login.html”文件(估计你不会犯这种低级错误)

    2)你的电脑是MAC还是Windows,如果是MAC,因为其对目录的解析跟Windows不同,你读取文件时不能写`www${path}`(学习过程中先写个绝对路径什么的就行)

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

从0开始学原生NodeJs

18475 学习 · 70 问题

查看课程

相似问题