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