摘要:首先,先分享用來做分頁查詢的簡(jiǎn)單函數(shù),先上代碼,是當(dāng)前頁數(shù),為一頁顯示多少條。
1.首先,先分享用來做分頁查詢的簡(jiǎn)單函數(shù),先上代碼,
function findByPagination(collections, selector, page, count, fn) { let skipnumber = (page - 1) * count; let totalCount; MongoClient.connect(Urls, function (err, db) { let collection = db.collection(collections); assert.equal(null, err); console.log("Connected correctly to server"); collection.find(selector).count((err, res) => { assert.equal(err, null); totalCount = res; }); collection.find(selector).skip(skipnumber).limit(count).toArray(function (err, result) { try { assert.equal(err, null); fn({ success: true, data: result, totalCount: totalCount }); } catch (e) { console.log(e); fn({ success: false, data: [], totalCount: totalCount }); } }); db.close(); });
page是當(dāng)前頁數(shù),count為一頁顯示多少條。
2.說說Node.js操作mongodb時(shí)怎么對(duì)數(shù)據(jù)庫里面的數(shù)組進(jìn)行增刪該查
if (req.session.userId) { let bookId = req.body.bookId; let quantity = req.body.quantity; let totalNum = req.body.totalNum; console.log("quantity: ", quantity); req.session.userId = req.session.userId; handleDb("userCollection", [{ _id: new ObjectID(req.session.userId), cart: { $elemMatch: { bookID: new ObjectID(bookId) } } }, { $set: { "cart.$.quantity": quantity, totalnum: totalNum } }], update, data => { res.end(`{"totalNum":${totalNum}}`); }) }
這里的if判斷req.session.userId是否存在,不太理解為什么一定要這么寫,不這樣寫刷新一次session就會(huì)變成undifine,大概是每次訪問時(shí)session都是不一樣的req吧,猜的
這里查詢的意思是對(duì)cart數(shù)組里指定ID的書籍的數(shù)量進(jìn)行設(shè)置,如果把$set改成$inc就是指定Id的書籍的數(shù)量進(jìn)行增加
handleDb("userCollection", [{ _id: new ObjectID(req.session.userId) }, { $pull: { cart: { bookID: new ObjectID(bookId) } } }], update, data => { handleDb("userCollection", { _id: new ObjectID(req.session.userId) }, find, userdata => { let user = userdata.data[0]; let totalnum = user.totalnum; res.end(`{"totalNum":${totalnum}}`); }) })
刪除cart數(shù)組中包含指定bookID的項(xiàng)目
最后貼上Mean stack寫的簡(jiǎn)單的書店前后端交互Demo
[圖書在線商城](https://github.com/ZoeLeee/bookstore)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95650.html
摘要:利用中間件實(shí)現(xiàn)異步請(qǐng)求,實(shí)現(xiàn)兩個(gè)用戶角色實(shí)時(shí)通信。目前還未深入了解的一些概念。往后會(huì)寫更多的前后臺(tái)聯(lián)通的項(xiàng)目。刪除分組會(huì)連同組內(nèi)的所有圖片一起刪除。算是對(duì)自己上次用寫后臺(tái)的一個(gè)強(qiáng)化,項(xiàng)目文章在這里。后來一直沒動(dòng),前些日子才把后續(xù)的完善。 歡迎訪問我的個(gè)人網(wǎng)站:http://www.neroht.com/? 剛學(xué)vue和react時(shí),利用業(yè)余時(shí)間寫的關(guān)于這兩個(gè)框架的訓(xùn)練,都相對(duì)簡(jiǎn)單,有的...
摘要:在路由回調(diào)函數(shù)里面操作的時(shí)候,直接用就可以獲取到客戶端的值。用回調(diào)函數(shù)來寫后期看起來會(huì)很吃力看有沒有重名的看是不是同一郵箱又想重復(fù)注冊(cè)如果是以上兩種情況,就發(fā)送錯(cuò)誤信息。此賬戶名已經(jīng)被注冊(cè)。 1. 開場(chǎng)白 用戶系統(tǒng)是許多網(wǎng)站的基礎(chǔ)。這篇文章主要就是講解如何寫一個(gè)基于Node的單頁應(yīng)用的用戶系統(tǒng),這個(gè)用戶系統(tǒng)的功能包括:注冊(cè),登錄,自動(dòng)登錄,忘記密碼,修改密碼,郵件激活。如果使用在后端使...
摘要:的最后一個(gè)大招就是替換一些傳統(tǒng)的服務(wù)端語言,例如,,等,在業(yè)務(wù)層上面使用來開發(fā)服務(wù)端完全不成問題。更多的的使用細(xì)節(jié)和技巧建議關(guān)注美團(tuán)博客大搜車論壇下一篇我們開啟如何結(jié)合和搭建一個(gè)開發(fā)環(huán)境和項(xiàng)目目錄 往期回顧 前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,但是還是瀏覽器端用的多,對(duì)于現(xiàn)在的前端開發(fā)來說,不懂一點(diǎn)服務(wù)端的東西,簡(jiǎn)直沒辦法活,一般的招聘要求都...
摘要:沒有耐心閱讀的同學(xué),可以直接前往學(xué)習(xí)全棧最后一公里。我下面會(huì)羅列一些,我自己錄制過的一些項(xiàng)目,或者其他的我覺得可以按照這個(gè)路線繼續(xù)深入學(xué)習(xí)的項(xiàng)目資源。 showImg(https://segmentfault.com/img/bVMlke?w=833&h=410); 本文技術(shù)軟文,閱讀需謹(jǐn)慎,長(zhǎng)約 7000 字,通讀需 5 分鐘 大家好,我是 Scott,本文通過提供給大家學(xué)習(xí)的方法,...
閱讀 1515·2021-11-11 16:54
閱讀 9860·2021-11-02 14:44
閱讀 2438·2021-10-22 09:53
閱讀 3323·2019-08-30 11:18
閱讀 2010·2019-08-29 13:29
閱讀 2074·2019-08-27 10:58
閱讀 1703·2019-08-26 11:38
閱讀 3584·2019-08-26 10:31