1. 安装ejs模板的命令有问题,安装不成功

因为在express3.X以下版本中, -t命令参数已经失效
express -t ejs microblog
需改成:

express -e microblog

2. 直接运行node app.js启动不了项目

express4.x+版本都是使用npm start命令来启动项目了,同时也将原来用于项目启用的代码移动到 自动创建的.bin/www这个文件中了

所以直接运行npm start来快速启动项目,或者node bin/www,或者监控代码:supervisor bin/www , 如下:

3. 使用partial片段视图报错:

express4.*已经放弃使用partial模块,改用 include 了
改动:
list.ejs:

<ul>
<% items.forEach(function(item){ %><% include listitem %>
<% }) %>
</ul>

listitem.ejs:

<li><%= item %>
</li>

4. 视图助手问题(在视图中设置一个全局函数或对象或变量):

app.helper和app.dynamicHelpers 分别为express2.X所使用的静态视图和动态视图助手函数。

在express3.X后,这两个方法被废除,使用的是locals方法,用法如下:

app.locals({key1: value1,key2: value2
});

即:

app.locals({inspect: function(obj){return util.inspect(obj, true);}
});

在express4.X 后,locals使用方式,如下:

app.locals.key1 = value1;
app.locals.key2 = value2;

即:

app.locals.inspect = function(obj){return util.inspect(obj, true);
}

5. 设置NODE_ENV 环境变量问题

app.js 添加:

console.log("环境变量=" + process.env.NODE_ENV);

可打印出当前的运行模式(1.devlopment 开发模式-利于调试;2.production 产品模式-利于部署).)

cmd 命令行 :

6. 使用express的morgan模块,添加日志功能

app.js :

var fs = require('fs');
var logger = require('morgan');// morgan中间件记录日志
var moment = require('moment');// 时间格式化(文件模块)
// 1日志文件(可不提前新建access.log和error.log, 执行时,会自动在项目根目录下生成。)
var accessLogfile = fs.createWriteStream('access.log', {flags: 'a'});// 1请求日志
var errorLogfile = fs.createWriteStream('error.log', {flags: 'a'});// 2错误日志app.use(logger('combined', {stream: accessLogfile}));// 1-将请求信息存在文件中-
//...app.js最后面添加异常处理...
// 1-开发模式
// 1-404错误处理
app.use(function(req, res, next) {var err = new Error('Not Found');err.status = 404;next(err);
});// 1-error handler,500错误处理,
/* ps:这个500处理,是app.js中默认的开发模式//处理方式,在添加下面产品模式的50处理时,要将开发模式的500处理注释掉。*/
/*app.use(function(err, req, res, next) {// set locals, only providing error in developmentres.locals.message = err.message;res.locals.error = req.app.get('env') === 'development' ? err : {};// render the error pageres.status(err.status || 500);res.render('error');
});*/// 2-产品模式 500异常处理
app.use(function (err, req, res, next) {// console.log(" req.app.get('env')=="+ req.app.get('env'));var meta = '[' + moment(new Date()).format('YYYY-MM-DD HH:mm:ss') + ']' + req.url + '\n';errorLogfile.write(meta + err.stack + '\n');next();
});

index.js中添加500异常测试:

router.get('/', function(req, res, next) {// res.render('index', { title: '首页' });throw new Error('发生一个错误啦...');// 500异常测试Post.get(null, function (err, posts) {if(err){posts = [];}res.render('index', {title: '首页',posts: posts})})
});

access.log:

error.log:

源码地址:https://gitee.com/minimey/microblog.git

nodejs开发指南中,microblog微博系统的开发相关相关推荐

  1. 《Node.js开发指南》MicroBlog项目的问题汇总

    重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 最近对Node产生了点兴趣,就看了<Node.js开发指南>一书,按照书中的例子敲完了所有代码.书是好书,非常适合 ...

  2. 基于JavaWeb 开发和实现一个微博系统【100010104】

    JavaWeb 微博系统 一.设计要求: 使用 JavaWeb 开发和实现一个微博系统,可参考新浪微博,要求具备微博的基本功能: 1)注册.登录和注销等功能: 2)发布信息,如:文字.图片: 3)用户 ...

  3. php生鲜超市系统,毕业论文:基于PHP平台下的Ajax开发实践—网上生鲜超市系统的开发...

    毕业论文:基于PHP平台下的Ajax开发实践-网上生鲜超市系统的开发 发表时间:2013-5-8 12:17:49 大学学士毕业论文 基于PHP平台下的Ajax开发实践 --网上生鲜超市系统的开发 专 ...

  4. Android BLE 蓝牙开发指南(三)外围设备端开发详解

    Android BLE开发指南(一)入门基础 Android BLE开发指南(二)中心设备端程序开发详解 这篇文章将会详细讲解低功耗蓝牙外围设备端程序开发的主要流程.对于Android开发者而言,或许 ...

  5. 《jQuery EasyUI开发指南》——10.4 迭代开发

    本节书摘来自异步社区<jQuery EasyUI开发指南>一书中的第10章,第10.4节,作者:王波著,更多章节内容可以访问云栖社区"异步社区"公众号查看 10.4 迭 ...

  6. 计算机应用系统的开发活动,计算机应用教学训练系统的开发与应用.doc

    职业技能培训多媒体课件●计算机应用教学训练系统的开发与应用●成果论文 PAGE PAGE 1 计算机应用教学训练系统的开发与应用 摘要:本文以计算机应用教学训练系统的开发与应用为背景,从实际教学需要出 ...

  7. sdn智能互联系统及开发平台_聊天交友平台系统APP开发

    点击上面"蓝字"关注我们! 聊天交友系统开发APP软件平台找[卢经理:186微1316电8035同号], 聊天交友短视频APP开发,聊天交友短视频软件APP开发系统,聊天交友开发A ...

  8. 开发指南:BUMO 智能合约 Java 开发指南

    BUMO 智能合约 Java 开发指南 概述 合约是一段JavaScript代码,标准(ECMAScript as specified in ECMA-262).合约的初始化函数是init, 执行的入 ...

  9. SAP 开发功能说明书之第三方系统接口开发

    今天一个圈子里的顾问遇到一个接口开发的问题,第三方系统读取SAP中的PR数据,创建采购合同,第三方系统合同审批通过后将数据推送到SAP系统,SAP系统创建采购订单,如果推送过来的数据是对订单进行修改, ...

最新文章

  1. 【模拟】谁拿了最多奖学金
  2. 分类算法——朴素贝叶斯分类
  3. java三层架构项目事例_三层架构实例
  4. C#刷剑指Offer | 【常考题】最小的k个数
  5. 17--合并两个有序数组
  6. PHP制作钱包银行金额数字展示功能实例
  7. Spring :@Inject注解
  8. 字节数与字符数mysql_mysql 数值与字符类型 长度梳理
  9. android默认打开方式修改,教你修改安卓智能手机默认打开方式
  10. bilibili ,B站视频预览缩略图实现分析
  11. 和陌陌一样,今天 Instagram 也在网页版上又迈了一步
  12. Revealing the predictability of intrinsic structure in complex networks
  13. php bouncy castle,ORG.BOUNCYCASTLE
  14. MT4电脑版软件下载前后有哪些注意事项?
  15. 电信网上营业厅用户自服务系统的设计与实现
  16. 勇者斗恶龙(The Dragon of Loowater, UVa 11292)
  17. excel文件被写保护怎么解除_excel表格受保护怎么解除保护
  18. Duplicate entry 'sang' for key 'UK_f8t9fsfwc17s6qcbx0ath6l3h'
  19. 3.ConcurrentMap-并发Map
  20. 操作系统学习体会之进程管理篇

热门文章

  1. 路由器的安装方法步骤
  2. 深入分析“各 向 异 性 过 滤”技术(上)
  3. html整体背景居中,HTML – 如何居中背景div?
  4. 【python游戏】努力制造阳光,让植物有力量对抗僵尸吧~
  5. CopyFile函数
  6. 安卓期末作品简单_小学语文期末考试总攻略,有它就够了!
  7. QT中QSS的语法设置【颜色渐变处理】
  8. polygon 填充文本_如何创建(动画)文本填充
  9. Android头像选择(手机和相册)
  10. windows 程序异常崩溃等错误定位