node经验总结(一)

1.快速构建express项目结构
express 项目名 --模板类型(ejs,jade,但不可指定为html);
1.1 输入cd nodeTest && npm install初始化node环境。
1.2启动SET DEBUG=nodetest:* & npm start。
tips:或者将整个项目拖到hbuilder下在www文件上右击,选择运行方
式--》node application,前提是你的hbuilder配置有node。

2.修改nodejs的模板为html
打开项目下的app.js,找到
app.set('view engine', 'ejs');
或者
app.set('view engine', 'jade');
将其改为
app.engine('.html', require('ejs').renderFile);
app.set('view engine', 'html');

3.node项目中的异常处理

以nodejs为后台或者代理服务的项目中,服务动不动就挂掉,着实让
人头疼,这就迫使我们要去研究node的异常处理机制。
在之前的项目中,通过研究发现在node服务中,我们可以通过一下方
法减少服务挂掉的机率:

app.configure(function(){
app.use(function(res, req, next){
var reqDomain = domain.create();
reqDomain.on('error', function (err) {
console.log('捕获请求异常');
res.send(500, err.stack);
});
reqDomain.run(next);
});
});


process.on("uncaughtException",function(err){
console.error("uncaughtException ERROR");
if (typeof err === 'object') {
if (err.message) {
console.error('ERROR: ' + err.message)
}
if (err.stack) {
console.error(err.stack);
}
} else {
console.error('argument is not an object');
}
});

tips:1.用domain作为express的中间件处理所有request和response
的异步请求。
2.process对象是NOde的全局进程对象,包括了该进程的信息。
1.1:domain对象是node8.0版本是发布的模块,由于node异步回调特
性,我们并不能使用try catch捕捉异常。domain的发布彻底解决了
这一问题。domain可以捕捉req,resp过程中的异常并进行处理。
2.1:process对象是NOde的全局进程对象,node是以事件循环机制执
行的,在一个事件执行的过程,同样也会有该事件的进程对象随之产
生,如果该事件包裹在domain中,进程抛出异常,但并没有被try-
catch捕捉到,此时会触发domain的err事件,反之会触发process的
uncaughtException事件。

转载于:https://www.cnblogs.com/wangkdeblogs/p/7646970.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值