Node.js全局安装第三方模块后cannot find mod

2019-12-25  本文已影响0人  xushiluo

2019年12月25日

一、系统环境

二、问题描述

如题,我们在全局安装Node.js的第三方模块后,使用npm install mssql -g全局mssql模块后,运行代码后仍然无法报cannot find module 'mssql'的错误。
这是什么缘故呢?当然是node找不到相关的模块

三、解决办法

3.1 查看模块全局安装路径

其实是我们需要新建一个NODE_PATH环境变量,来只是全局模块的安装位置。全局模块的安装位置在哪里呢?
可以使用npm root -g来查看,如下:

查看全局安装路径

可以看到,我的电脑上的路径是:

C:\Users\luogeMacWin\AppData\Roaming\npm\node_modules

3.2 创建NODE_PATH环境变量

我们可以安装Rapid Environment Editor来编辑环境变量。添加一个环境变量NODE_PATH,变量的值为:C:\Users\luogeMacWin\AppData\Roaming\npm\node_modules

添加NODE_PATH环境变量

四、测试:使用全局node模块

有测试文件dbtest.js,其内容如下:

var sql = require('mssql');
//连接方式:"mssql://用户名:密码@ip地址:1433(默认端口号)/数据库名称"
sql.connect("mssql://sa:sa的密码@localhost:1433/MyDB").then(function() {
    // Query
    new sql.Request().query('select top 3 * from dbo.course').then(function(recordset) {
        console.log(recordset);
    }).catch(function(err) {
       console.log(err);
    });
    // Stored Procedure
}).catch(function(err) {
    console.log(err);
})

打开命令行窗口,输入node dbtest.js,可以看到输出如下结果,不再报cannot find module的错误,证明现在node可以找到全局模块了。

运行的结果
上一篇 下一篇

猜你喜欢

热点阅读