亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

有同學知道怎么回事嗎?鏈接錯了嗎 一直改了很多遍 還是顯示這樣,咋辦?

普通頁面沒有報錯 訪問localhost:8080/login.html就報錯

http://img1.sycdn.imooc.com//5e15e2290001fc0609770124.jpghttp://img1.sycdn.imooc.com//5e15e2ac00015ef919180197.jpg

//app.js文件


const?http?=?require('http')?//引進http就是創建服務器

const?url?=?require('url')

const?querysring?=?require('querystring')

const?fs?=?require('fs')


let?user?=?{

????//用json代替/假裝數據庫,存的用戶的(登錄)數據

????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?//吧數據放到外面去,get數據


????????complete()


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


????????let?arr?=?[]

????????req.on('data',?buffer?=>?{

????????????arr.push(buffer)?//暫時拿到了buffer

????????})


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

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

????????????????//concat()方法吧數組平起來,二進制轉為toString變成人能看的東西,如果是文件不能用toString

????????????????//querystring也是一個parse,處理成我們喜歡的string

????????})

????????complete()

????}



????function?complete()?{

????????//響應頭,狀態碼200成功,寫在這里不太好,到時候ajax去寫是不會亂碼的,寫在最外層是因為登錄和注冊msg都有中文寫一次可以共同去用

????????//?res.writeHead(200,?{


????????//?????????"Content-Type":?"text/plain;charset=utf-8"

????????//?????})?//將亂碼轉換為編碼(msg亂碼了)








????????if?(path?==?'/login')?{


????????????if?(!user[username])?{


????????????????res.writeHead(200,?{


????????????????????"Content-Type":?"text/plain;charset=utf-8"

????????????????})





????????????????//登錄

????????????????let?{?username,?password?}?=?get

????????????????//拿到的get數據,判斷數據庫有沒有,username,password是確定的名字?


????????????????//判斷如果是用戶的密碼登錄成功


????????????????res.end(JSON.stringify({

????????????????????????err:?1,

????????????????????????msg:?"用戶名不存在",


????????????????????}),?//end?只能用字符串和buffer,用JSON.stringify轉換為字符串???//end是一個回調


????????????????)





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

????????????????res.end(JSON.stringify({

????????????????????err:?1,

????????????????????msg:?"密碼錯誤"

????????????????}))


????????????}?else?{

????????????????res.end(JSON.stringify({

????????????????????????err:?0,

????????????????????????msg:?"登錄成功"

????????????????????}))?//成功?err為0

????????????}




????????}?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讀取的


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

????????????????if?(err)?{

????????????????????res.end('404')

????????????????}?else?{

????????????????????res.end(data)?//這個data就是buffer直接end就可以

????????????????}

????????????})





????????}


????}







}).listen(8080)




//let?path,get,post?路徑?get數據?post數據


//?get有個url的路徑?


//let{pathname,query}=url.parse(req.url,true)?parse(是解析一下,好像是數組解析)true(是split)


//post?比較復雜?是異步


//在if塊最后,在else?if塊最后,不可能做兩個事情,創建一個完成的函數,在if,else?if塊最后執行


//get請求寫完?測試(沒有用到之前的form.html文件)?命令行輸入這個node?app??在瀏覽器輸入localhost:8080/login?username=zhangsan&password=123456?

//顯示{"err":1,"msg":"鐢ㄦ埛鍚嶄笉瀛樺湪"},這個字符串沒報錯,是亂碼,因為msg:中文,(到時候ajax去寫是不會亂碼的)

//將亂碼轉換為編碼,重新執行,顯示{"err":1,"msg":"用戶名不存在"}



//post寫完沒辦法跟get請求一樣測試,要用ajax,在node文件夾下建一個www的文件夾,www文件夾里面有login.html,這個靜態文件訪問不了(localhost:8080/login.html,因為現在還沒有寫過),

//用fs模塊讀取這個文件,訪問(localhost:8080/login.html),顯示字符串,被編碼影響了,吧編碼重新放在登錄,注冊if塊和else?if塊最前面?(命令行和網址輸入,顯示登錄框)



//login.html?登錄頁面引入jquery.min.js,開始寫ajax(在html頁面寫)






//login.html文件

<!DOCTYPE?html>

<html?lang="en">


<head>

????<meta?charset="UTF-8">

????<meta?name="viewport"?content="width=device-width,?initial-scale=1.0">

????<meta?http-equiv="X-UA-Compatible"?content="ie=edge">

????<title>Document</title>





????<script?src="jquery.min.js"></script>

</head>


<body>

????用戶名:<input?type="text"?id="username"><br/>?密碼:

????<input?type="password"?id='password'><br/>

????<button?id="login">登錄</button><br/>

????<button?id="reg">注冊</button><br/>

????<script>

????????$('#login').click(function()?{

????????????$.ajax({

????????????????url:?"/login",

????????????????data:?{

????????????????????username:?$('#username').val(),

????????????????????password:?$('#passwor').val()

????????????????},

????????????????dataType:?"json",

????????????????success(res)?{

????????????????????//執行成功返回的是json值

????????????????????if?(res.err)?{

????????????????????????alert(res.mag)

????????????????????}?else?{

????????????????????????alert("登錄成功")

????????????????????}




????????????????}

????????????})

????????})

????</script>


</body>




</html>




正在回答

3 回答

同學,先回答你第一個錯誤:

//登錄的問題:? let?{?username,?password?}?=?get

這段代碼你寫在了if判斷的下面,當執行if的時候,還沒獲取到username,當然就報錯了。 你把這段代碼放到if前面即可解決。


第二個問題:

關于你的jquery找不到的問題,是因為你路徑寫的有問題.

login.html和jquery.min.js是同一個目錄,

所以你引入jquery的時候,src應該是./jquery.min.js, 不用加前面的/www/,

./是指當前目錄的意思

希望能解決你的問題。:)


0 回復 有任何疑惑可以回復我~
#1

鹿人神經粉 提問者

老師 你這么好的呀 居然給我回復了 我有空再接著學
2020-01-30 回復 有任何疑惑可以回復我~

代碼太多不想看

0 回復 有任何疑惑可以回復我~

我想補充,當我改完路徑又有問題,課程是沒有www.+jquery的路徑的然后文件也是復制到www文件夾? 然后我這里顯示這樣http://img1.sycdn.imooc.com//5e15eb460001e69f09941006.jpghttp://img1.sycdn.imooc.com//5e15eb5d00014aae07550439.jpghttp://img1.sycdn.imooc.com//5e15eb7300012dcc19200165.jpghttp://img1.sycdn.imooc.com//5e15eb860001ad2411000220.jpg

0 回復 有任何疑惑可以回復我~
#1

慕沐3296643

應該路徑錯了,login.html和jquery.min.js是同級目錄,不需要寫www/xxx了,直接寫src="jquery.min.js" 或者 src="./jquery.min.js"
2020-04-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有同學知道怎么回事嗎?鏈接錯了嗎 一直改了很多遍 還是顯示這樣,咋辦?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號