typescript - 打字稿 - 续集:无法使用模型
问题描述
我尝试将 Sequelize 与 TypeScript 一起使用,但我无法使其正常工作。我尝试了很多在互联网上看到的东西,但在我的情况下没有任何效果。
这是我的模型/index.ts
import { Sequelize } from 'sequelize';
import config from '../config'
const env = process.env.NODE_ENV || 'development';
const db = config[env]
const sequelize = db.url
? new Sequelize(db.url, db)
: new Sequelize(db.database, db.username, db.password, db);
export { Sequelize, sequelize };
(如果我记得清楚的话,在 ts sequelize 样板中的某个地方看到过)
这是一个模型定义
import {
Model,
Optional,
} from 'sequelize'
export interface ScreenAttributes {
id: number
title: string
deletedAt?: Date
}
interface ScreenCreationAttributes extends Optional<ScreenAttributes, "id"> {}
export class Screen extends Model<ScreenAttributes, ScreenCreationAttributes>
implements ScreenCreationAttributes {
public id!: number
public title!: string
public deletedAt?: Date
public readonly createdAt!: Date;
public readonly updatedAt!: Date;
static associate(models: any) {
// Screen.belongsTo(models.User, { targetKey: 'id' })
}
}
module.exports = (sequelize: any, DataTypes: any) => {
Screen.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
},
title: {
type: new DataTypes.STRING(128),
allowNull: false,
},
deletedAt: {
type: DataTypes.DATE,
allowNull: true,
},
}, {
sequelize,
tableName: 'Screens',
})
return Screen
}
export default Screen
这是我如何使用它
import Screen from '../db/models/screen'
Screen.create({
title: req.body.title || 'Untitled',
}).then(screen => {
return res.status(200).json(screen)
}).catch((error: Error) => console.log(error))
但是当 Screen.create 被调用时,我有一个TypeError: screen_1.default.create is not a function
,但我的 IDE 设法解析方法,甚至我的模型的类型。
那么有什么问题和/或我在哪里可以找到一个真正好的样板,用于带有 TS 和 Sequelize 的快速应用程序,我查看了 Sequelize 文档,但我发现它有点混乱,而且他们没有为模型导出 (db/models/index.ts)
谢谢
解决方案
推荐阅读
- javascript - 运行实际应用程序时运行 jest 测试时的 Javascript 堆栈跟踪 VS 堆栈跟踪
- javascript - 我可以在 javascript 中使用模板文字来处理必须是单行的长文本,并且为了*可读性*它是多行的吗?
- node.js - 我们是否应该在 Typescript for Node 中使用类,或者我们在 javascript 导出函数开发中使用的相同方式
- javascript - 如何在 JSPDF 中编辑 TextField() 的字体大小?
- javascript - 省略等待让方法并行运行是否安全?
- sql-server - T-SQL n 行表示 2 天之间的天数
- sql - SQL Merge - 仅插入特定列已更新的位置
- python - 图片保存后不显示
- typescript - TypeScript:具有除一个之外的任何键的对象
- java - 使用 Netty 接收到的消息是否有可能出现故障或受限?