《nodejs开发指南》微博实例常见错误汇总express4.x.x+jade

最近刚开始接触nodejs,看到知乎上有人推荐《nodejs开发指南》这本书,看了看讲的也还不错,就开始上手。但是由于出版年份+科技进步太快,导致很多代码出现了版本性问题。没碰到一个问题我就要上网查阅大量资料才能解决,很费时间。所以想把这些问题整理记录下来,供大家参考。
因为这个是几天前完成的,所以对于有些问题可能遗漏掉了,但是我们可以在评论区中相互探讨。如果有不正确的地方也欢迎大家指正。
源代码稍后附链接。

依赖模块的安装问题

由于版本更新,很多模块从express中进行了拆分或重组,导致我们安装的modules跟书上例子不一样。这是我安装的全部模块,供大家参考。

"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0",
"mongodb":">=1.4.8",
"connect-mongo": "~1.0.2",
"express-session": "~1.0.4",
"connect-flash":"*"
 }

其中要重点注意的是”connect-mongo”的版本问题,不能太低,否则会出现一个什么奇葩的报错。具体是什么我忘记了…以后一定勤于记录。

还会出现 *** is not a function 的报错。一般情况下,如果你的代码没有错误的话,就是模块未加载或者未初始化。如我遇到的报错flash is not a function 就是因为我没有初始化。在使用flash函数之前,应该:

var flash = require('connect-flash');   //加载模块
app.use(flash());                       //初始化

如果要去http://localhost:3000预览效果的话,还要自己在app.js里添加app.listen(3000); 才能监听3000端口。

链接mongodb库

这是出问题最多的一部分。容我回忆回忆~
首先要安装mongodb,这个很简单没什么。后面还要注册为本机服务,大家可以去网上找一下相关文章也不难,就是一句话的事。但是我在注册过程中一直报错Invalid command: files\mongoDB\log\log.txt 。我折腾了好久,才找到了问题所在:路径中有空格,会当做一个参数处理。只要用引号引起来就可以了。。。

mongod.exe --logpath="D:\Program Files\mongoDB\log\log.txt" --logdb="D:\Program Files\mongoDB\
data\db" --directoryperdb --serviceName MongoDB --install

报错信息DEFAULT_PORT is not defined ,就是说mongodb数据库的默认端口未定义,我在这里固定为27017就好了。
这里写图片描述

module.exports = new Db(settings.db, new Server(settings.host, 27017, {}), {safe:true});

其它还有很多代码部分的改动,我就不一一说明了,请大家参照我的Github上的源代码。

404错误

首先应检查对应路径控制器的回调函数。
比如我在添加了Post模型之后,再访问首页就会报错Cannot read property ‘length’ of undefined 。开始我一直以为是我jade语法的问题,可是在线检测没问题。于是我就想是不是回调函数的问题。果然,我没有把posts 传到模板引擎中。于是加进去就OK了。
安利给大家一个好东西——Jage在线转换为HTML

最后我想说,虽然现在网络很发达,也提倡大家遇到问题自行gogle,但是我希望大家不要忘记:google的前提是自己分析了这个问题,未果,才去万维网需求帮助的。以前我就存在这个问题,只要报错就把问题复制粘贴找答案,虽然最后问题也能解决,但是没有一个自我思考、自我推理的过程,就很难得到进步。望读到这篇文章的盆友们引以为鉴,有则改之无则加勉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值