以加法为例
--return类型
return.js文件:
var obj = {};
obj.sum = function(a, b){
var sum = a+b;
return sum;
}
module.exports = obj;
--callback类型
callback.js文件:
var obj = {};
obj.sum = function(a, b ,callback){
var sum = a+b;
callback(null,sum)
}
module.exports = obj;
--测试
test.js文件:
var returns = require('./return.js');
var callback = require('./callback.js');
//return
var sum = returns.sum(3, 5);
console.log('return sum :', sum);
//callback
callback.sum(3, 5, function(err,result){
console.log('callback sum :',result);
})
结果
总结
return这种封装一般都是处理字符串,日期什么的.
nodejs本身是异步的,所以大部分封装都会用callback这种类型,比如查询数据库封装等.
-- Promise风格
promise.js
var Promise = require('bluebird')
var obj = {};
obj.sum = function(a, b){
var sum = a+b;
return new Promise(function(resolve, reject) {
if (sum < 100) {
//成功操作,对应 then方法
resolve(sum)
}
else {
//失败操作,对应catch方法
reject('总和不能大于100')
}
})
}
module.exports = obj;
测试
var promise = require('./promise');
promise.sum(10,3).then(function(sum){
console.log('sum :',sum);
}).catch(function(err){
console.log('err :',err);
})
小于100就打印值,大于100就提示错误.