mysql - 在 TypeScript 中导入时“找不到模块”

标签 mysql node.js typescript node-mysql

我在导入 nodejs 模块时遇到了一个小问题。 对于 http 模块,此语法运行良好:

import * as http from "http";

但是当我尝试对“mysql2”node.js 模块执行相同操作时:

import * as database from "mysql2";

我给了我一个错误:

Cannot find module 'mysql2'

并拒绝编译该行。 我什至尝试过这样的语法(不知道为什么):

import {database} from 'mysql2';

但是只有我这样写才不会报错:

let database = require('mysql2');

在 tsconfig.json 中我设置了:

"module": "commonjs",
"moduleResolution": "node",

当然,我已经通过 npm 在项目文件夹中安装了模块:

npm install mysql2 --save

所以我的问题是,为什么导入不起作用并且我在 Visual Studio Code 中出现错误?

最佳答案

我认为导入不起作用,因为您缺少 mysql2 的 typescript 定义。您还没有发布您的 typings.json(或 tsd.json),但我猜您已经为 nodejs 导入了定义,但对于 mysql2 却没有,因此您可以使用“导入自”语法导入“http”,而对于 mysql2,您必须使用普通的javascript nodejs 'require' 用于导入它。

关于mysql - 在 TypeScript 中导入时“找不到模块”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36091822/

相关文章:

php - 插入单列值

node.js - Mongoose model.save() 在更新时不会持久保存到数据库

reactjs - 通过键在 typescript 中使用 react 组件动态访问对象

typescript - RTK 查询 : Get one element from list depending on useGet. ..查询 Hook 参数

PHP优化网站语言包

php - 我已将信息插入我的数据库中,并且我也已验证它。但如果我点击插入它会重定向到另一个页面

mysql - 临时表和主表 - mysql

node.js - Node net.createConnection ECONNREFUSED

node.js - 在单个查询中计算 Mongoose 中的文档数量

typescript - Typescript 中通用函数的映射