[读书笔记]了不起的node.js(四)
这周的学习主要是nodejs的数据库交互上,并使用jade模板一起做了一个用户验证的网站。主要是遇到了一下几个问题。
1.mongodb版本过低
npm ERR! Not compatible with your operating system or architecture: mongodb@0.9.9
0.9.9只支持linux,darwin,freebsd这几个系统,最新版本已支持wins。
2.nodejs进行insert操作后:无法读取结果
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);
});
});
表象是重定向失败,真实情况是插入数据库已经成功但doc为空,更不要说doc[0].email的值了。原因是insert这类操作是异步进行的,异步操作默认是不返回其结果的来确定是否运行成功的。需要通过增加第三个参数{safe:ture}来实现这个功能,即app.users.insert(req.body.user, {safe:ture}, function(){……})。这样就成功读取结果了。
3.connect-connect出现未定义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.总结
经过这本书的学习,知道nodejs的一些特点以及活跃外文站。node中一些热门板块的更新频率也加大了学习的难度,这本书也算入门吧。接下来计划通过实战学习sails后端框架。学习中遇到的问题也都记录在笔记本上。
[读书笔记]了不起的node.js(四)的更多相关文章
- [读书笔记]了不起的node.js+实践(一)
环境的变化带来了技术大跃进,机遇和挑战同时到来.基于我js也没有学,只好赶鸭子上架一起学了.(>﹏<) 1.先读读书 一开始就不知死活地看<深入浅出node.js>,弄得团团转 ...
- [读书笔记]了不起的node.js(三)
这周的nodejs学习内容为几个依赖包的使用,把书上的例子都敲了一遍.这篇就以例程为线索,复习一下一周的工作. 1.connect 这个例程主要是使用connect依赖包,connect提供一个中间件 ...
- [读书笔记]了不起的node.js(二)
这周做项目做得比较散(应该说一直都是这样),总结就依据不同情境双开吧-这篇记录的是关于node的学习总结,而下一篇是做项目学到的web前端的知识. 1.HTTP篇 node的HTTP模块在第一篇时接触 ...
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- 了不起的Node.js读书笔记
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...
- 【第十周读书笔记】读node入门,一本全面的node.js教程
我学到了路由的定义,路由就是解析URL然后转到相应的执行程序. 我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码(这里“代码”对应整个应用的第三部 ...
- node.js在windows下的学习笔记(5)---用NODE.JS创建服务器和客户端
//引入http模块 var http = require('http'); //调用http的createServer的方法,这个方法有一个回调函数,这个回调数 //的作用是当有请求发送给服务器的时 ...
- 读书笔记_MVC__关于通过js构建ORM,实现Model层
最近一直在学习MVC构建富应用的WEB程序,自己一直对MVC的设计模式理解的不是十分透彻,终于在研读了github上Spine的源码之后,对构建Model层有了一点自己的理解. 本文仅为个人理解,如有 ...
- 了不起的Node.js--之四
阻塞与非阻塞IO 绝大多数对node.js的讨论都把关注点放在了其处理高并发的能力上.Node框架给开发者提供了构建高性能网络应用的强大能力. 我使用的开发工具是Mac版的WebStorm,这个工具支 ...
随机推荐
- Host Definition
Description: A host definition is used to define a physical server, workstation, device, etc. that r ...
- Tomcat多次部署
http://blog.csdn.net/knityster/article/details/6300804
- json中jobject
Json.net codeplex :http://www.codeplex.com/Json 原本感觉Newtonsoft.Json和.net自己的JavaScriptSerializer相差无几, ...
- NEERC 2014, Eastern subregional contest
最近做的一场比赛,把自己负责过的题目记一下好了. Problem B URAL 2013 Neither shaken nor stirred 题意:一个有向图,每个结点一个非负值,可以转移到其他结点 ...
- [codility]Min-abs-sum
https://codility.com/demo/take-sample-test/delta2011/ 0-1背包问题的应用.我自己一开始没想出来.“首先对数组做处理,负数转换成对应正数,零去掉, ...
- iOS开发--使用RSA加密
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- Netcat for Windows
April 10, 2009 Netcat is a simple networking utility which reads and writes data across network conn ...
- Android 九宫格密码锁进入程序
设置九宫格密码锁进入程序,设置,重置,取消等,安卓巴士地址http://www.apkbus.com/forum.php?mod=viewthread&tid=182620&extra ...
- 安装Hadoop系列 — eclipse plugin插件编译安装配置
[一].环境参数 eclipse-java-kepler-SR2-linux-gtk-x86_64.tar.gz //现在改为eclipse-jee-kepler-SR2-linux-gtk-x86_ ...
- Vim 配色设置与配色脚本语法
几个给tag加颜色的插件 https://github.com/octol/vim-cpp-enhanced-highlight:基于tag的c family语法高亮 https://github.c ...