nodejs global的妙用

//gctx.js

//gctx.js
/**
 * global context
 * @type {{}}
 */
let gctx = {};
gctx.error = function(msg, code) {
  let error = (new Error);
  error.code = code;
  error.message = msg;
  error.file = error.stack.split('\n')[2];
  return error;
};
module.exports = gctx;

//subcall.js

let subcall = {};
subcall.call = function() {
  //调用全局报错
  //减少重复性的引用
  throw gctx.error('test', 500);
};
module.exports = subcall;

//index.js

const gctx = require('./gctx.js');
const subcall = require('./subcall.js');
//引入全局global context
global.gctx = gctx;

try {
  // throw gctx.error('test', 500);
  subcall.call();
} catch (e) {
  console.log(e.message, e.code, e.file);
}

输出:

test 500     at Object.subcall.call (....\local_test\subcall.js:4:14)

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注