了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互
這周的學習主要是nodejs的數(shù)據(jù)庫交互上,并使用jade模板一起做了一個用戶驗證的網(wǎng)站。主要是遇到了一下幾個問題。
1.mongodb版本過低
npm ERR! Not compatible with your operating system or architecture: mongodb@0.9.9
0.9.9只支持linux,darwin,freebsd這幾個系統(tǒng),最新版本已支持wins。
2.nodejs進行insert操作后:無法讀取結(jié)果
app.post('/signup', function(req, res, next){
//插入文檔
app.users.insert(req.body.user, function(err, doc){
if(err) return next(err);
res.redirect('/login/' + doc[0].email);
});
});
表象是重定向失敗,真實情況是插入數(shù)據(jù)庫已經(jīng)成功但doc為空,更不要說doc[0].email的值了。原因是insert這類操作是異步進行的,異步操作默認是不返回其結(jié)果的來確定是否運行成功的。需要通過增加第三個參數(shù){safe:ture}來實現(xiàn)這個功能,即app.users.insert(req.body.user, {safe:ture}, function(){……})。這樣就成功讀取結(jié)果了。
3.connect-connect出現(xiàn)未定義store
MongoStore = require('connect-mongo')
app.use(express.session({
secret:settings.cookieSecret,
store:new MongoStore({
db:settings.db
})
}));
源碼如上,查明原因為基于Express的不同版本,connect-mongo模塊引入的方式不同。在其Readme.md也特別提示了。
With express4:
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
app.use(session({
secret: settings.cookie_secret,
store: new MongoStore({
db : settings.db,
})
}));
With express<4:
var express = require('express');
var MongoStore = require('connect-mongo')(express);
app.use(express.session({
secret: settings.cookie_secret,
store: new MongoStore({
db: settings.db
})
}));
針對不同的版本,相應的修改即可。
4.總結(jié)
經(jīng)過這本書的學習,知道nodejs的一些特點以及活躍外文站。node中一些熱門板塊的更新頻率也加大了學習的難度,這本書也算入門吧。接下來計劃通過實戰(zhàn)學習sails后端框架。學習中遇到的問題也都記錄在筆記本上。
- node.js操作mongoDB數(shù)據(jù)庫示例分享
- node.js連接mongoDB數(shù)據(jù)庫 快速搭建自己的web服務
- Node.js對MongoDB數(shù)據(jù)庫實現(xiàn)模糊查詢的方法
- node.js連接MongoDB數(shù)據(jù)庫的2種方法教程
- Node.js連接MongoDB數(shù)據(jù)庫產(chǎn)生的問題
- Node.js中使用mongoose操作mongodb數(shù)據(jù)庫的方法
- 利用Vue.js+Node.js+MongoDB實現(xiàn)一個博客系統(tǒng)(附源碼)
- 利用node.js+mongodb如何搭建一個簡單登錄注冊的功能詳解
- 詳解Wondows下Node.js使用MongoDB的環(huán)境配置
- Node.js操作MongoDB數(shù)據(jù)庫實例分析
相關文章
初學者如何快速搭建Express開發(fā)系統(tǒng)步驟詳解
這篇文章主要介紹了初學者如何快速搭建Express開發(fā)系統(tǒng),結(jié)合實例形式詳細分析了express框架搭建的具體步驟與相關注意事項,需要的朋友可以參考下2023-05-05用node-webkit把web應用打包成桌面應用(windows環(huán)境)
這篇文章主要介紹了windows環(huán)境下用node-webkit把web應用打包成桌面應用的教程,需要的朋友可以參考下2018-02-02解決npm管理員身份install時出現(xiàn)權限的問題
下面小編就為大家分享一篇解決npm管理員身份install時出現(xiàn)權限的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03Express URL跳轉(zhuǎn)(重定向)的實現(xiàn)方法
Express是一個基于Node.js實現(xiàn)的Web框架,其響應HTTP請求的response對象中有兩個用于URL跳轉(zhuǎn)方法res.location()和res.redirect(),使用它們可以實現(xiàn)URL的301或302重定向。2017-04-04