nodejs+mongodb寫的一個簡單的登入註冊
自己自學Nodejs 中 隨便寫著玩的 沒學到資料集過濾 就自己想了個笨辦法
還不完善 自己練手了
----------------------------------------------------------------------以下是伺服器程式碼 server.js---------------------------------------------------------------------------
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
app.get('/', function(req, res){
res.type('.html')
res.sendFile(__dirname + "/" + "index.html")
})
/*註冊功能*/
app.get('/process_get', function(req, res){
res.type('.html')
respose={
name:req.query.name,
password:req.query.password
}
/**/
function addUser(collection, db){
collection.insert(db, function(err, results){
if(!err){
console.log(results)
}
})
}
MongoClient.connect("mongodb://dbadmin:
var myDB = db.db("users");
myDB.collection("userCollection", function(err, ncoll){
//ncoll.remove({user_name:"ceshi"}, function(err, results){} )
ncoll.find({user_name:respose.name}, function(err, items){
items.toArray(function(err, item){
console.log(item.length) //通過查詢出的陣列長度去判斷
if(item.length < 1){
addUser(ncoll, { user_name:respose.name, user_padd:respose.password})
res.end("您已註冊成功!")
} else{
res.end("對不起,使用者名稱重複,你再想想唄~")
}
})
})
})
})
})
/*註冊功能*/
/*登入功能*/
app.get('/user_get', function(req, res){
respose = {
name:req.query.name,
password:req.query.password
}
// console.log(respose.name)
MongoClient.connect("mongodb://dbadmin:
var myDB = db.db("users");
myDB.collection("userCollection", function(err, ncoll){
ncoll.find(function(err, items){
items.toArray(function(err, item){
//console.log("biao" + JSON.stringify(item))
})
})
// console.log(respose.name)
ncoll.find({user_name:respose.name}, function(err, items){
if(err){
console.log(err)
}
items.toArray(function(err, item){
console.log(item[0].user_padd)
if(respose.password == item[0].user_padd){
console.log("password" +respose.password == item[0].user_padd)
res.type('.html');
res.end("歡迎您" + respose.name)
}
else {
res.type(".html");
res.end("對不起,您輸入的密碼不正確")
}
})
})
})
})
})
/*登入功能結束*/
app.listen(3001)
----------------------------------------------------------------------以上是伺服器程式碼 server.js---------------------------------------------------------------------------
----------------------------------------------------------------------以下是html程式碼 index.html-----------------------------------------------------------------------------
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>zhuce</title>
</head>
<body>
<form action="http://localhost:3001/process_get">
<span>您的暱稱:</span><input type="text" name="name">
<p></p>
<span>您的密碼</span><input type="text" name="password">
<p></p>
<input type="submit" value="註冊">
</form>
<p></p>
<form action="http://localhost:3001/user_get">
<span>您的暱稱:</span><input type="text" name="name">
<p></p>
<span>您的密碼</span><input type="text" name="password">
<p></p>
<input type="submit" value="登入">
</form>
</body>
</html>
----------------------------------------------------------------------以下是遇到的坑 ---------------------------------------------------------------------------
1、mongoose登入的話 需要你的資料庫管理員賬戶密碼
2、res.type('.html) 最好提前 不然會因為非同步的問題 造成先輸出send 後設置header的問題
3、toArray() 方法可以變成陣列 方便JSON處理 而 each()方法你自己試試- -
4、以後遇到了再補充吧
-----------------------------------------------------------我還比較菜 不對的地方輕噴 還有我寫這個的時候沒有學到資料集的過濾 -------------------------------------------------------------------------
我寫這個的時候沒有學到資料集的過濾!
我寫這個的時候沒有學到資料集的過濾!
我寫這個的時候沒有學到資料集的過濾!
自己也比較菜 - - 就當是學習筆記