2019年12月25日
一、系统环境
- Windows 10 64bit企业版
- Node 13.2.0
二、问题描述
如题,我们在全局安装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模块
有测试文件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可以找到全局模块了。
网友评论