亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[node.js]《Nodejs開發(fā)指南》 微博項(xiàng)目實(shí)現(xiàn)

Lowky / 1297人閱讀

摘要:開發(fā)指南原有的下載地址失效了,想要的朋友可以戳我項(xiàng)目完整代碼一個(gè)基于和的簡單微博項(xiàng)目,具體描述詳見開發(fā)指南。改為其中書中使用來實(shí)現(xiàn)服務(wù)器返回信息的顯示,但是該方法在很久之前被廢除。

Nodejs開發(fā)指南PDF(原有的下載地址失效了,想要pdf的朋友可以戳我):
http://wenku.baidu.com/link?url=RSy6donQq0guPBwwFZiWjPGJzzINmuierqZJr9ZMxfivll2gw2AtK9SNu_BGAsEBq5-WMyaZwzpQeDoyWM_t67eLOCsHOnhO5LF4onWva8y

項(xiàng)目完整代碼:
https://github.com/chnmagnus/MBlog

一個(gè)基于express和mongodb 的簡單微博項(xiàng)目,具體描述詳見《Nodejs開發(fā)指南》。
網(wǎng)上也有一些該項(xiàng)目實(shí)現(xiàn)的代碼,但是基本都是幾年前的= =,許多代碼都無法運(yùn)行,各種search之后終于用各種最新版本的代碼實(shí)現(xiàn)了這一項(xiàng)目,特此記錄,分享。


簡單說一下我的代碼相對書中代碼的變化:

1.ejs模板,layout.js被廢棄,所以我使用include來提升代碼的復(fù)用性。
將html代碼的head及nav部分放在header.ejs中,將頁腳部分放在footer.ejs中,然后在需要的部分使用<%- include header.ejs %>的方式來進(jìn)行引入。


2.app.METHOD(URL,function) 改為 app.use(URL,routes);
其中var routes = require("./routes/index");


3.書中使用req.flash()來實(shí)現(xiàn)服務(wù)器返回信息的顯示,但是該方法在很久之前被廢除。
解決方法一:
如果想繼續(xù)使用req.flash(),需要require("connect-flash")模塊(https://github.com/jaredhanso...),但這個(gè)模塊也已三年沒有更新過了= =,我并不確定是否能用。
解決方法二:
我是使用了res.locals.xxx;以及添加中間件的方式來進(jìn)行信息的反饋。在需要返回信息給客戶端的位置,例如登錄成功時(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
  })
}));
//...
//這部分代碼是放在對具體路徑進(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模板,在開頭添加代碼用來顯示反饋信息:

 <% if (message) { %>
  
<%= message %>
<% } %>

效果如下圖:


4.使用了官方推薦的MongoClient方式來進(jìn)行數(shù)據(jù)庫的連接,關(guān)于這種方式的模塊化,我也存有困惑,在segmentfault上提過問題= =,沒有得到回答,自己摸索著解決的,可以看我的提問。

大概就是這樣,共勉,一起努力= =

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/18822.html

相關(guān)文章

  • node.js中文資料導(dǎo)航

    摘要:中文資料導(dǎo)航官網(wǎng)七牛鏡像深入淺出系列進(jìn)階必讀中文文檔被誤解的編寫實(shí)戰(zhàn)系列熱門模塊排行榜,方便找出你想要的模塊多線程,真正的非阻塞淺析的類利用編寫異步多線程的實(shí)例中與的區(qū)別管道拒絕服務(wù)漏洞高級編程業(yè)界新聞看如何評價(jià)他們的首次嘗鮮程序員如何說服 node.js中文資料導(dǎo)航 Node.js HomePage Node官網(wǎng)七牛鏡像 Infoq深入淺出Node.js系列(進(jìn)階必讀) Nod...

    geekidentity 評論0 收藏0
  • GitHub 值得收藏的前端項(xiàng)目[每月更新...]

    摘要:也是一款優(yōu)秀的響應(yīng)式框架站點(diǎn)所使用的一套框架為微信服務(wù)量身設(shè)計(jì)的一套框架一組很小的,響應(yīng)式的組件,你可以在網(wǎng)頁的項(xiàng)目上到處使用一個(gè)可定制的文件,使瀏覽器呈現(xiàn)的所有元素,更一致和符合現(xiàn)代標(biāo)準(zhǔn)。 GitHub 值得收藏的前端項(xiàng)目 整理與收集的一些比較優(yōu)秀github項(xiàng)目,方便自己閱讀,順便分享出來,大家一起學(xué)習(xí),本篇文章會(huì)持續(xù)更新,版權(quán)歸原作者所有。歡迎github star與fork 預(yù)...

    maxmin 評論0 收藏0
  • 7月份前端資源分享

    摘要:更多資源請文章轉(zhuǎn)自月份前端資源分享的作用數(shù)組元素隨機(jī)化排序算法實(shí)現(xiàn)學(xué)習(xí)筆記數(shù)組隨機(jī)排序個(gè)變態(tài)題解析上個(gè)變態(tài)題解析下中的數(shù)字前端開發(fā)筆記本過目不忘正則表達(dá)式聊一聊前端存儲(chǔ)那些事兒一鍵分享到各種寫給剛?cè)腴T的前端工程師的前后端交互指南物聯(lián)網(wǎng)世界的 更多資源請Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfr...

    pingan8787 評論0 收藏0
  • 后端知識(shí)點(diǎn)總結(jié)——NODE.JS基礎(chǔ)

    摘要:后端知識(shí)點(diǎn)總結(jié)基礎(chǔ)不是是一種軟件開發(fā)平臺(tái),它的競爭對象歷史第一次有一種語言可以通吃前后端網(wǎng)站阿里云鏡像版本年初年中年底最新版本功能強(qiáng)大可靠,適合大型企業(yè)級項(xiàng)目簡單易用適合互聯(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,是一種軟件開發(fā)平臺(tái),它的競爭對象JSP/PHP/ASP.NET...

    Freeman 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<