首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript:在类内创建MySql2连接对象

问TypeScript:在类内创建MySql2连接对象
EN

Stack Overflow用户
提问于 2022-07-19 19:41:34
回答 1查看 212关注 0票数 0

我刚开始接触TypeScript,所以简单的事情还是会让我感到困惑。我使用下面的代码成功地创建了一个数据库连接,它不在一个类中:

代码语言:javascript
复制
const mysql = require('mysql2');
let connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'myPW',
    database: 'myDb'
});

connection.connect(function(err: any) {
    if (err) {
      return console.error('error: ' + err.message);
    }  
    console.log('Connected to the MySQL server.');
  });

一切都很好。然后,我将相同的代码放入这样的类中:

代码语言:javascript
复制
const mysql = require('mysql2');
export class Server {
  constructor() { }

connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'myPW',
    database: 'myDb'
});

connection.connect(function(err: any) {
  if (err) {
    return console.error('error: ' + err.message);
  }    
  console.log('Connected to the MySQL server.');
});
}

我发现了这些错误:

​

​

下面的错误来自第13行的红色错误。

重复标识符‘连接’。意外的记号。需要构造函数、方法、访问器或属性。没有返回类型注释的“‘connect”隐式地具有“任意”返回类型。“函数”不允许作为参数名。重复功能实现。

有人能解释一下我做错了什么吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-07-19 19:47:48

这是因为connection.connect部件属于类的构造函数。写这个的一个更好的方法是

代码语言:javascript
复制
import * as mysql from 'mysql2';

export class Server {
  public readonly connection: mysql.Connection;

  constructor() {
    this.connection = mysql.createConnection({
      host: '127.0.0.1',
      user: 'root',
      password: 'myPW',
      database: 'myDb'
    });

    this.connection.connect(function(err: any) {
      if (err) {
        return console.error('error: ' + err.message);
      }    
      console.log('Connected to the MySQL server.');
    });
  }
}

这会将逻辑移动到构造函数中,而构造函数正是逻辑应该存在的位置。将代码放入类主体将引发错误。

如果您想使用这个类,您可以这样做:

代码语言:javascript
复制
const server = new Server();

server.connection.query(...);

还请注意,我已经将require调用转换为import,这是在类型记录中推荐的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73042643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档