Javascript 使用NodeJS和x2B的良好实践;ES6导入

Javascript 使用NodeJS和x2B的良好实践;ES6导入,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我正在使用NodeJS和Typescript启动一个简单的后端服务器,以利用其自动完成/类型检测功能 在以前的应用程序中,所有数据库逻辑都位于db.js文件中,在需要时使用require导入该文件。到目前为止,它一直运行良好,但我想尝试使用import导入模块,看看它的优点和缺点,并希望得到一些建议 我的计划是创建一个类来处理所有数据库逻辑并保留连接信息。比如: db.ts import { Sequelize } from 'sequelize'; export class AppDB {

我正在使用NodeJS和Typescript启动一个简单的后端服务器,以利用其自动完成/类型检测功能

在以前的应用程序中,所有数据库逻辑都位于
db.js
文件中,在需要时使用
require
导入该文件。到目前为止,它一直运行良好,但我想尝试使用
import
导入模块,看看它的优点和缺点,并希望得到一些建议

我的计划是创建一个类来处理所有数据库逻辑并保留连接信息。比如:

db.ts

import { Sequelize } from 'sequelize';

export class AppDB {
  // Will store the connection, note that it's STATIC
  static sequelize: Sequelize;

  constructor() {
    // Connect to the DB and store the connection in the class property
    AppDB.sequelize = this.connect(.....);
  }
}
import { AppDB } from 'db/db';

....
  AppDB.sequelize.query(...);
....
这样,我就可以通过以下方式从所有路由或模型访问数据库连接:

模型/示例\u model.ts

import { Sequelize } from 'sequelize';

export class AppDB {
  // Will store the connection, note that it's STATIC
  static sequelize: Sequelize;

  constructor() {
    // Connect to the DB and store the connection in the class property
    AppDB.sequelize = this.connect(.....);
  }
}
import { AppDB } from 'db/db';

....
  AppDB.sequelize.query(...);
....
我的问题是:这是通过应用程序共享对象的好方法吗?与使用
require
相比,它有什么缺点吗


提前感谢,

在Typescript中,
导入
只能在存在类型声明文件(
*.d.ts
)的情况下使用。
require
关键字忽略这些类型,并完全删除对该特定库的类型使用

这是实现在不同文件中使用相同数据库连接的目标的好方法。

仍处于试验阶段。因此,不,这不是一个好的实践(还没有?)。