Javascript 使用NodeJS和x2B的良好实践;ES6导入
我正在使用NodeJS和Typescript启动一个简单的后端服务器,以利用其自动完成/类型检测功能 在以前的应用程序中,所有数据库逻辑都位于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 {
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
关键字忽略这些类型,并完全删除对该特定库的类型使用
这是实现在不同文件中使用相同数据库连接的目标的好方法。仍处于试验阶段。因此,不,这不是一个好的实践(还没有?)。