摘要:開(kāi)發(fā)指南原有的下載地址失效了,想要的朋友可以戳我項(xiàng)目完整代碼一個(gè)基于和的簡(jiǎn)單微博項(xiàng)目,具體描述詳見(jiàn)開(kāi)發(fā)指南。改為其中書(shū)中使用來(lái)實(shí)現(xiàn)服務(wù)器返回信息的顯示,但是該方法在很久之前被廢除。
Nodejs開(kāi)發(fā)指南PDF(原有的下載地址失效了,想要pdf的朋友可以戳我): http://wenku.baidu.com/link?url=RSy6donQq0guPBwwFZiWjPGJzzINmuierqZJr9ZMxfivll2gw2AtK9SNu_BGAsEBq5-WMyaZwzpQeDoyWM_t67eLOCsHOnhO5LF4onWva8y 項(xiàng)目完整代碼: https://github.com/chnmagnus/MBlog
一個(gè)基于express和mongodb 的簡(jiǎn)單微博項(xiàng)目,具體描述詳見(jiàn)《Nodejs開(kāi)發(fā)指南》。
網(wǎng)上也有一些該項(xiàng)目實(shí)現(xiàn)的代碼,但是基本都是幾年前的= =,許多代碼都無(wú)法運(yùn)行,各種search之后終于用各種最新版本的代碼實(shí)現(xiàn)了這一項(xiàng)目,特此記錄,分享。
簡(jiǎn)單說(shuō)一下我的代碼相對(duì)書(shū)中代碼的變化:
1.ejs模板,layout.js被廢棄,所以我使用include來(lái)提升代碼的復(fù)用性。
將html代碼的head及nav部分放在header.ejs中,將頁(yè)腳部分放在footer.ejs中,然后在需要的部分使用<%- include header.ejs %>的方式來(lái)進(jìn)行引入。
2.app.METHOD(URL,function) 改為 app.use(URL,routes);
其中var routes = require("./routes/index");
3.書(shū)中使用req.flash()來(lái)實(shí)現(xiàn)服務(wù)器返回信息的顯示,但是該方法在很久之前被廢除。
解決方法一:
如果想繼續(xù)使用req.flash(),需要require("connect-flash")模塊(https://github.com/jaredhanso...),但這個(gè)模塊也已三年沒(méi)有更新過(guò)了= =,我并不確定是否能用。
解決方法二:
我是使用了res.locals.xxx;以及添加中間件的方式來(lái)進(jìn)行信息的反饋。在需要返回信息給客戶(hù)端的位置,例如登錄成功時(shí),使用如下代碼:
res.lacals.result = "登錄成功"; res.redirect("/");
配合app.js中的部分代碼:
var session = require("express-session"); var MongoStore = require("connect-mongo")(session); //... app.use(session({ name: settings.name, secret: settings.secret, cookie: { maxAge: 1000*60*30 }, store: new MongoStore({ url: settings.url }) })); //... //這部分代碼是放在對(duì)具體路徑進(jìn)行處理之前的 app.use(function (req,res,next) { res.locals.user = req.session.user; var result = req.session.result; delete req.session.result; res.locals.message = ""; if(result){ res.locals.message = result; } next();//中間件傳遞 });
當(dāng)然,不要忘記修改ejs模板,在開(kāi)頭添加代碼用來(lái)顯示反饋信息:
<% if (message) { %><%= message %><% } %>
效果如下圖:
4.使用了官方推薦的MongoClient方式來(lái)進(jìn)行數(shù)據(jù)庫(kù)的連接,關(guān)于這種方式的模塊化,我也存有困惑,在segmentfault上提過(guò)問(wèn)題= =,沒(méi)有得到回答,自己摸索著解決的,可以看我的提問(wèn)。
大概就是這樣,共勉,一起努力= =
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/18822.html
摘要:中文資料導(dǎo)航官網(wǎng)七牛鏡像深入淺出系列進(jìn)階必讀中文文檔被誤解的編寫(xiě)實(shí)戰(zhàn)系列熱門(mén)模塊排行榜,方便找出你想要的模塊多線程,真正的非阻塞淺析的類(lèi)利用編寫(xiě)異步多線程的實(shí)例中與的區(qū)別管道拒絕服務(wù)漏洞高級(jí)編程業(yè)界新聞看如何評(píng)價(jià)他們的首次嘗鮮程序員如何說(shuō)服 node.js中文資料導(dǎo)航 Node.js HomePage Node官網(wǎng)七牛鏡像 Infoq深入淺出Node.js系列(進(jìn)階必讀) Nod...
摘要:也是一款優(yōu)秀的響應(yīng)式框架站點(diǎn)所使用的一套框架為微信服務(wù)量身設(shè)計(jì)的一套框架一組很小的,響應(yīng)式的組件,你可以在網(wǎng)頁(yè)的項(xiàng)目上到處使用一個(gè)可定制的文件,使瀏覽器呈現(xiàn)的所有元素,更一致和符合現(xiàn)代標(biāo)準(zhǔn)。 GitHub 值得收藏的前端項(xiàng)目 整理與收集的一些比較優(yōu)秀github項(xiàng)目,方便自己閱讀,順便分享出來(lái),大家一起學(xué)習(xí),本篇文章會(huì)持續(xù)更新,版權(quán)歸原作者所有。歡迎github star與fork 預(yù)...
摘要:更多資源請(qǐng)文章轉(zhuǎn)自月份前端資源分享的作用數(shù)組元素隨機(jī)化排序算法實(shí)現(xiàn)學(xué)習(xí)筆記數(shù)組隨機(jī)排序個(gè)變態(tài)題解析上個(gè)變態(tài)題解析下中的數(shù)字前端開(kāi)發(fā)筆記本過(guò)目不忘正則表達(dá)式聊一聊前端存儲(chǔ)那些事兒一鍵分享到各種寫(xiě)給剛?cè)腴T(mén)的前端工程師的前后端交互指南物聯(lián)網(wǎng)世界的 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfr...
摘要:后端知識(shí)點(diǎn)總結(jié)基礎(chǔ)不是是一種軟件開(kāi)發(fā)平臺(tái),它的競(jìng)爭(zhēng)對(duì)象歷史第一次有一種語(yǔ)言可以通吃前后端網(wǎng)站阿里云鏡像版本年初年中年底最新版本功能強(qiáng)大可靠,適合大型企業(yè)級(jí)項(xiàng)目簡(jiǎn)單易用適合互聯(lián)網(wǎng)項(xiàng)目易用適合平臺(tái)性能好適合服務(wù)器端密集型項(xiàng)目不適合密集型項(xiàng)目密集 后端知識(shí)點(diǎn)總結(jié)——NODE.JS基礎(chǔ) 1.Node.js Node.js不是JS,是一種軟件開(kāi)發(fā)平臺(tái),它的競(jìng)爭(zhēng)對(duì)象JSP/PHP/ASP.NET...
閱讀 3158·2021-11-22 13:54
閱讀 3450·2021-11-15 11:37
閱讀 3612·2021-10-14 09:43
閱讀 3508·2021-09-09 11:52
閱讀 3612·2019-08-30 15:53
閱讀 2474·2019-08-30 13:50
閱讀 2065·2019-08-30 11:07
閱讀 897·2019-08-29 16:32