nodejs开发指南中,microblog微博系统的开发相关
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微博系统的开发相关相关推荐
- 《Node.js开发指南》MicroBlog项目的问题汇总
重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 最近对Node产生了点兴趣,就看了<Node.js开发指南>一书,按照书中的例子敲完了所有代码.书是好书,非常适合 ...
- 基于JavaWeb 开发和实现一个微博系统【100010104】
JavaWeb 微博系统 一.设计要求: 使用 JavaWeb 开发和实现一个微博系统,可参考新浪微博,要求具备微博的基本功能: 1)注册.登录和注销等功能: 2)发布信息,如:文字.图片: 3)用户 ...
- php生鲜超市系统,毕业论文:基于PHP平台下的Ajax开发实践—网上生鲜超市系统的开发...
毕业论文:基于PHP平台下的Ajax开发实践-网上生鲜超市系统的开发 发表时间:2013-5-8 12:17:49 大学学士毕业论文 基于PHP平台下的Ajax开发实践 --网上生鲜超市系统的开发 专 ...
- Android BLE 蓝牙开发指南(三)外围设备端开发详解
Android BLE开发指南(一)入门基础 Android BLE开发指南(二)中心设备端程序开发详解 这篇文章将会详细讲解低功耗蓝牙外围设备端程序开发的主要流程.对于Android开发者而言,或许 ...
- 《jQuery EasyUI开发指南》——10.4 迭代开发
本节书摘来自异步社区<jQuery EasyUI开发指南>一书中的第10章,第10.4节,作者:王波著,更多章节内容可以访问云栖社区"异步社区"公众号查看 10.4 迭 ...
- 计算机应用系统的开发活动,计算机应用教学训练系统的开发与应用.doc
职业技能培训多媒体课件●计算机应用教学训练系统的开发与应用●成果论文 PAGE PAGE 1 计算机应用教学训练系统的开发与应用 摘要:本文以计算机应用教学训练系统的开发与应用为背景,从实际教学需要出 ...
- sdn智能互联系统及开发平台_聊天交友平台系统APP开发
点击上面"蓝字"关注我们! 聊天交友系统开发APP软件平台找[卢经理:186微1316电8035同号], 聊天交友短视频APP开发,聊天交友短视频软件APP开发系统,聊天交友开发A ...
- 开发指南:BUMO 智能合约 Java 开发指南
BUMO 智能合约 Java 开发指南 概述 合约是一段JavaScript代码,标准(ECMAScript as specified in ECMA-262).合约的初始化函数是init, 执行的入 ...
- SAP 开发功能说明书之第三方系统接口开发
今天一个圈子里的顾问遇到一个接口开发的问题,第三方系统读取SAP中的PR数据,创建采购合同,第三方系统合同审批通过后将数据推送到SAP系统,SAP系统创建采购订单,如果推送过来的数据是对订单进行修改, ...
最新文章
- 【模拟】谁拿了最多奖学金
- 分类算法——朴素贝叶斯分类
- java三层架构项目事例_三层架构实例
- C#刷剑指Offer | 【常考题】最小的k个数
- 17--合并两个有序数组
- PHP制作钱包银行金额数字展示功能实例
- Spring :@Inject注解
- 字节数与字符数mysql_mysql 数值与字符类型 长度梳理
- android默认打开方式修改,教你修改安卓智能手机默认打开方式
- bilibili ,B站视频预览缩略图实现分析
- 和陌陌一样,今天 Instagram 也在网页版上又迈了一步
- Revealing the predictability of intrinsic structure in complex networks
- php bouncy castle,ORG.BOUNCYCASTLE
- MT4电脑版软件下载前后有哪些注意事项?
- 电信网上营业厅用户自服务系统的设计与实现
- 勇者斗恶龙(The Dragon of Loowater, UVa 11292)
- excel文件被写保护怎么解除_excel表格受保护怎么解除保护
- Duplicate entry 'sang' for key 'UK_f8t9fsfwc17s6qcbx0ath6l3h'
- 3.ConcurrentMap-并发Map
- 操作系统学习体会之进程管理篇