Linux下Node.js引用模块报错Error: Cannot find module

1,问题描述

背景:scrapyd上传的py文件,使用execjs调用Linux中的js文件,其中js引用了crypto-js,但是报错找不到这个模块(已安装)

//适配多个解密
const CryptoJS = require("crypto-js");
// const CryptoJS = require("/usr/local/lib/node_modules/crypto-js");
var _0x14e728 = new Date();


function hash(type, value){
    if(type == 'md5'){
        return CryptoJS.MD5(value).toString();
    }
    if(type == 'sha1'){
        return CryptoJS.SHA1(value).toString();
    }
    if(type == 'sha256'){
        return CryptoJS.SHA256(value).toString();
    }
}
function cookies(_0x3d7469) {
    function _0x56cee0(_0xa58645, _0xf56c7e) {
        var _0x37f1b9 = _0x3d7469["chars"]["length"];
        for (var _0x268aea = 0; _0x268aea < _0x37f1b9; _0x268aea++) {
            for (var _0x4614fb = 0; _0x4614fb < _0x37f1b9; _0x4614fb++) {
                var _0x235ad1 = _0xf56c7e[0] + _0x3d7469["chars"]["substr"](_0x268aea, 1) + _0x3d7469["chars"]["substr"](_0x4614fb, 1) + _0xf56c7e[1];

                if (hash(_0x3d7469['ha'], _0x235ad1) == _0xa58645) {
                    return [_0x235ad1, new Date() - _0x14e728];
                }
            }
        }
    }

    var _0x732635 =  _0x56cee0(_0x3d7469["ct"], _0x3d7469["bts"]);
    return {'__jsl_clearance_s' : _0x732635[0]};
}
// _0x3d7469 = {
//   "bts": ["1684222849.145|0|NKW", "el7hb7LKwY%2BSlBVcjmZAyI%3D"],
//   "chars": "JdzZAHOVmwUgOAZudnYlem",
//   "ct": "a3a56368e8dd9b39a02bf1dba60dc39eaaf6a0fe2c8c868c902074dfb4062e82",
//   "ha": "sha256",
//   "tn": "__jsl_clearance_s",
//   "vt": "3600",
//   "wt": "1500"
// }
// console.info(cookies(_0x3d7469))

2,解决办法

2.1方法一

1, 执行命令 npm -g root,查看全局安装的 Node.js 模块所在的路径
2, 将引用模块的路径改为绝对路径const CryptoJS = require(“/usr/local/lib/node_modules/crypto-js”);
这个虽然能解决,但是没有逼格,所以请出二号选手

2.2方法二

1,首先cd到文件所在的位置,执行命令npm init,这个命令用于初始化一个新的 Node.js 项目的命令。它会创建一个 package.json 文件
2,然后在这个位置npm install [你要安装模块],再去执行js文件node xxx.js,就可以了
3,这里就不用再修改绝对路径了
在这里插入图片描述

在这里插入图片描述
注:后面我将这个js目录移到/opt/lily/js目录下面又报找不到这个模块的错

方法三

在这里插入图片描述

看日志,可以看到说是当前模块加载错误的来源是位于 “/opt/lily” 目录下的一个文件,所以我们要在这个目录下执行命令npm init,然后再npm install [你要安装模块]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值