多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > node.js用戶注冊功能的完善

node.js用戶注冊功能的完善

來源:程序員人生   發布時間:2015-06-01 08:47:49 閱讀次數:2831次

            這篇主要實現了蹩腳的郵件發送,log日志,和mongodb數據庫更新的操作。

        草草寫點,不然留到51過后,就說不過去了。由于時間比較緊,所以功能很多都是對付,留賜與后優化吧。郵件發送這1塊,實現的比較簡單,原計劃是服務器端為用戶生成1個令牌的,形如:http://127.0.0.1:3000?key=w345d&username=fuhui1,但是由于服務器端還得驗證,火大,暫時放棄了,直接使用username.

       不了解思路的,這里在簡單介紹1下,下面是注冊頁面:


        然后判斷數據庫里fuhui2是否是存在,如果存在,我就不注冊了,這里目前只是單純的return,并沒有實現提示功能。然后數據表就插進去了,情勢上就是



        然后發送郵件到注冊者的郵箱,同時更新isValid字段為1.由于mongodb數據庫沒有行列的概念,可能1行數據有2列,另外一行數據有5個field.情勢就更新成上1圖中有isValid的模樣。



        最后記錄1下發送郵件的日志:



        記錄用戶的session,前面的章節介紹了,然后跳轉到用戶的主頁:



        下面是跳轉后的主頁,目前只是表示有跳轉這個功能,其他不管了



        不要看這個很簡單,實現起來其實也不是很容易,花了足足兩個小時,弄定的。

       

        第1步,郵件模塊的實現,主要是配置了QQ郵箱,依照教程配的,google吧。

exports.sendMail = function (emailAddress, title, content) { mail.sendMail({ from: emailConf["user"], to: emailAddress, subject: title, html: content }, function (error, success) { if (!error) { //日志記錄 console.log('message success', success); } else { lib.log.write("maillog/sendmail.log",[err]); console.log('failed' + error); } }); }


        第2步,實現了更新的函數。有時候覺得mongodb就是給js寫的1樣,使用js操作起來特別方便,看過php操作mongodb的,但感覺就是不爽,json用數組來表示,灰常不開心,雖然自己是弄php的吧。

        mongodb灰常奇異,特別是嵌套數組和文檔,特別是更新操作如果指定了upsert還是甚么屬性的,查找沒找到,還管給你插入1條。還有比較成心思的是,更新不謹慎就會變成替換,不指定$set或$inc甚么的,他不進行更新,他進行的是替換操作。所以才有了上面的那個,第1次插入了3個字段,第2次更新的時候,又插入了1個isValid字段。

        貼1下基類的更新:

/** * 更新用戶的操作 * 該方法更新了option參數,之前使用默許值{safe: true} */ this.modify = function (tableName, whereJson, rowInfo,option, callback) { connection(function (mdbConn) { mdbConn.collection(tableName, function (err, collection) { collection.update(whereJson, rowInfo, option, function (err) { if (err) { console.log(err); callback(false); } else { callback(true); } }); }) }); }

        第3步,日志操作。雖然手頭有log4j模塊的認識了解,但是還是沒有用,由于沒有時間實踐,只能跟php1樣,寫個write類來手動寫了,以后再完善吧

//日志記錄 exports.write = function (file, infor) { var file_path = LOG + file; lib.fs.open(file_path, "a", function (err, fd) { if (err) throw err; console.log(typeof infor); return ; // if (typeof infor != 'array') // throw new Error("type failed"); var data = format_time + " , " + infor.join(" , ") + "/n"; lib.fs.writeSync(fd, data, function (err, writen, str) { }); lib.fs.closeSync(fd); }); }

        第5步,給郵箱生成1個令牌。我本來計劃生成1個隨機數的,但是無意中發現crypto模板,本來是要該模塊是進行hash密碼加密的,這里我的加密方式也很簡單easy,就是普通的hash加了1個鹽值。   回歸主題,發現 這個模塊還能生成1個隨機數,所以,嘻嘻,


/** * 獲得1個隨機的10位數 */ exports.validcode =function(callback){ crypto.randomBytes(10,function(ex,buf){ if (ex) throw ex; callback(buf); }); }

        仔細看了1下,全是bug,路還很長啊,接下來完成登錄,然后就是完善1下這幾個模塊,日志,加密,郵件發送等等吧。


        以后這些東西都放到虛擬機里了,在虛擬機了安裝nginx,放棄127.0.0.1這個low的名稱了。至于上傳文件的部份,就不安裝vsftpd了,值得說1下,網上的安裝教程真的是太火大了,都是說些不靠譜的東西,或4處轉載,根本就不能好好的解決問題,甚么添加目錄權限了,添加用戶組了介紹的都很不爽,也由于電腦的緣由,就直接使用rz方式了。

        由于我的redis和mongodb在虛擬機上,所以,每次啟動都的切換界面。



        好辛苦,歡迎大家加群抨擊。



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: www.黄色网址 | 中文字幕在线观看网址 | 亚洲性综合 | 亚洲国产精品第一区二区 | 大学生一级一片第一次免费 | 亚洲国产女人aaa毛片在线 | 亚洲精品国产综合久久一线 | 欧美一级欧美一级毛片 | 久久这里都是精品 | 天天综合色一区二区三区 | 美日韩精品 | 久久性| 亚洲天码中文字幕第一页 | 欧美jizz18欧美 | 亚洲欧洲日韩国产一区二区三区 | wwwwwww色| 国产精品久久久久久久 | 网站在线观看免费视频 | 午夜在线观看免费观看大全 | 欧美日韩亚洲一区二区三区 | 免费一区二区三区四区五区 | 激情图片小说区 | 亚洲国产精品第一区二区 | 性欧美18-19sex性高清播放 | 欧美一级毛片欧美大尺度一级毛片 | 一级在线观看视频 | 欧美视频一区二区三区在线观看 | 亚洲精品久久99久久一区 | 成年人免费看的视频 | 最近最新中文字幕1页 | 痴汉系列aⅴ | 久久久久久综合 | 亚洲黄色一区 | 亚洲国产精品免费观看 | 手机在线视频观看 | 免费观看性行为的视频网站 | 乱人伦中文视频在线 | 久久一区二区三区不卡 | 中文字幕不卡高清免费 | 精品视频在线看 | 亚洲成人精品久久 |