节点js - 导入用于Angular 2项目错误的mssql模块:"无法解析'dns'"和"无法解析'dgram'"

Nat*_*Lee 7 sql-server debugging dependency-injection node.js angular

我在Angular 2和NodeJS开发方面都有丰富的经验.如果这个问题过于简单,我会道歉.

我的目标是创建一个连接到SQL Server数据库的Web界面.此应用程序将使用户能够轻松地从应用程序发送查询并从连接的数据库接收结果.

在搜索解决方案时,我决定在通过npm安装后将mssql模块导入到我的模块中mssql-connection.service.ts.我计划通过使用依赖注入或其常规语法在服务中使用它.但是,在每种情况下进行编译时遇到错误.

首先,在尝试通过编写使用DI方法时,import { MSSQL } from 'mssql';我得到两个重复的错误消息node_modules/@types/mssql/index"' has no exported member 'MSSQL'.

其次,我试图将这种情况作为回应来补救,我写道import 'mssql';.然后我得到总共三个错误消息:我得到两个重复的错误消息Can't resolve 'dns' in '...\node_modules\tedious\lib'Can't resolve 'dgram' in '...\node_modules\tedious\lib'我也尝试使用的错误消息,const sql = require('mssql');但这会给我Cannot find name 'require'.错误消息,之前是先前的错误消息.

我很难过,想知道为什么会这样!我希望能够自由使用外部模块.我也试过npm install @types/mssql但无济于事.我的节点版本是v6.9.5,我使用的是Angular 4.0.0.请帮忙!

先感谢您.

Sid*_*era 1

我真的认为你在这里想要实现的目标没有任何意义。您不认为在 Angular 应用程序中使用它是一种反模式吗?您究竟应该如何分发此应用程序并确保其安全?

我建议你在 NodeJS 项目中使用 mssql。您可以从那里公开您将从 Angular 应用程序中访问的 API。毕竟,这就是客户的目的。

这样做将使您的代码更易于管理、维护和松散耦合。

希望这是有道理的。