Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js全局定制require函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试修改这样的要求

require = function (path) {
    try {
        return module.require(path);
    } catch (err) {
        console.log(path)
    }
}

但是,此修改的范围仅在当前模块中.我想全局修改它,因此该模块所需的每个模块也将获得相同的require函数副本.

基本上,我想捕获@L_801_4@Error以了解哪个文件有问题.我似乎找不到任何其他选择.如果我把module.require放在try / catch块中,我将能够获得导致@L_801_4@Error的文件名.

解决方法

我设法通过@L_852_0@module类的原型函数需求来解决它.我将它放在主脚本中,并且可用于所有必需的模块.

var pathModule = require('path');
var assert = require('assert').ok;

module.constructor.prototype.require = function (path) {
    var self = this;
    assert(typeof path === 'String','path must be a String');
    assert(path,'missing path');

    try {
        return self.constructor._load(path,self);
    } catch (err) {
        // if module not found,we have nothing to do,simply throw it BACk.
        if (err.code === 'MODULE_NOT_FOUND') {
            throw err;
        }
        // resolve the path to get absolute path
        path = pathModule.resolve(__dirname,path)

        // Write to log or whatever
        console.log('Error in file: ' + path);
    }
}

大佬总结

以上是大佬教程为你收集整理的Node.js全局定制require函数全部内容,希望文章能够帮你解决Node.js全局定制require函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。