- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关联定义为:
Orders.belongsToMany(Items, { through: OrderItem });
Items.belongsToMany(Orders, { through: OrderItem });
Orders.create(orderDetails).then(order => {
orderDetails.items.forEach(item => {
Items.findByPk(item.code).then(item => {
order.addItem(item)
})
});
})
Unhandled rejection TypeError: order.addItem is not a function
最佳答案
它应该工作。我正在使用 "sequelize": "^5.21.3"
。此外,您的代码还有另一个问题。您创建了一个订单,但 sequelize 不会在 items
对象中创建 orderDetails
。您需要使用关联创建它们。您应该使用 Orders.create(orderDetails, { include: [Items] })
创建项目。您可以查看此 docs 以了解详细信息。
让我们回到你的问题,order.addItem
应该可以工作。这是完成的工作示例:index.ts
:
import { Model, BelongsToManyAddAssociationMixin, DataTypes } from 'sequelize';
import { sequelize } from '../../db';
class Orders extends Model {
public id!: number;
public addItem!: BelongsToManyAddAssociationMixin<Items, number>;
}
Orders.init({}, { sequelize, modelName: 'order' });
class Items extends Model {
public code!: number;
public name!: string;
}
Items.init(
{
code: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
},
name: DataTypes.STRING,
},
{ sequelize, modelName: 'item' },
);
class OrderItem extends Model {
public orderId!: number;
public itemCode!: number;
}
OrderItem.init({}, { sequelize, modelName: 'orderItem' });
Orders.belongsToMany(Items, { through: OrderItem });
Items.belongsToMany(Orders, { through: OrderItem });
export { sequelize, Orders, Items, OrderItem };
index.test.ts
:
import { sequelize, Orders, Items } from './';
describe('59818484', () => {
beforeAll(async () => {
await sequelize.sync({ force: true });
});
afterAll(async () => {
await sequelize.close();
});
it('should pass', (done) => {
expect.assertions(3);
const orderDetails = {
items: [
{ code: 1, name: 'a' },
{ code: 2, name: 'b' },
],
};
let count = 0;
Orders.create(orderDetails).then(async (order: Orders) => {
const items = await Items.findAll();
expect(items).toHaveLength(0);
orderDetails.items.forEach((item) => {
Items.findByPk(item.code)
.then((item: Items) => {
expect(typeof order.addItem).toBe('function');
return order.addItem(item);
})
.finally(() => {
count++;
if (count === orderDetails.items.length) {
done();
}
});
});
});
});
});
PASS src/examples/stackoverflow/59818484/index.test.ts
59818484
✓ should pass (34ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 3.23s
关于node.js - Sequelize 关联 :Unhandled rejection TypeError: order. addItems 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818484/
我正在使用 Test Cafe 中使用 Resemble.JS 库的函数来比较实际屏幕截图和基本屏幕截图。在我的夹具中,我有两个测试,由于屏幕截图不匹配,两个测试都应该在报告中失败,但唯一的第一个测试
这个问题在这里已经有了答案: What does IndexOutofRangeException mean? (3 个答案) 关闭 9 年前。 string Query = "SELECT [AA
错误日志: System.TypeInitializationException was unhandled Message="The type initializer for 'MaxDavid
使用 Python 2.7 和 Django 1.10.4,我尝试将我的应用程序部署到 pythonanywhere,但我不断收到此错误。 错误日志 wsgi.py import os import
我有一个名为 Form1 的表单: 有一个 ComboBox 和一个 TextBox,当我从 ComboBox 中选择 US$ 时,它必须从数据库中检索数据并显示TextBox 中的 150。 这是我
我正在尝试制作 slider 益智游戏,但在我的 form1 中调用 myBoard.paint(e.Graphics) 时,我不断收到错误“NullReferenceException 未处理”。请
我目前正在开发一个数据库,用于跟踪停在 parking 场的车辆。但是,我在将新记录保存到数据库表时遇到了一些问题。现在我对编程还很陌生,所以我无法理解我收到的错误。我试过查找它并发现了类似的情况,但
我编写了一个 Android 应用程序 (4.4.2),它在大多数时间都能正确连接/断开 BLE 外围设备。但是,每隔一段时间我就会在 Bluetootgatt.java onClientConnec
当我尝试运行 Facebook C# SDK 附带的 WP7 示例应用程序时,我收到此异常: File or assembly name 'Microsoft.Contracts, Version=1
我正在尝试学习如何在 Scala 中使用 Try with 进行理解。 在下面的示例代码中( result1 ), 如果 for comprehension 中的最后一条语句抛出未处理的异常, 代码不
我遇到了一个小问题,在调试了所有应用程序后,我注意到这是导致问题的文件,并向我返回了 UnhandledPromiseRejection 'use strict' const connection =
我对 Java(特别是 Android)相当陌生。我试图让用户从图库中选择图像,然后应用程序会将图像从图库复制到应用程序目录中的文件夹(以及显示他们在图像按钮中选择的图片)。但是,我收到“未处理的异常
我已从 iOS SDK 4.2 升级到 iOS SDK 5.0。当我现在尝试编译当前项目时,出现以下错误。 关于这里出了什么问题的任何想法?我已经阅读了所有我能找到的“mtouch failed wi
由于我正在考虑使用 WCF,所以我认为最好只是按照一个简单的教程来尝试一下。 3 小时后,我只有一个异常(exception)要显示。它不会消失。 我排除了没有加载 app.config 的可能性。如
我正在尝试在带有 .net 4.5 的 VS 2012 中使用带有 Telerik OpenAccess 的 WCF Plain 服务。 我尝试了 telerik 开发人员手册并创建了服务和客户端。
我遇到了这个错误 Program.exe 中 0x0049b946 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000090。 错误指向这一行: // thread
对于我的 Monodroid 应用程序,我想在出现未处理的异常后执行以下操作: 将错误发送到服务器。 通知用户应用程序已崩溃(可能使用 toast 消息)。 优雅地退出应用程序。 我已经实现了#1,但
我使用 JQuery 的表排序器对表进行排序,但我遇到了空表抛出异常的问题。所以我在脚本中添加了一个条件,但现在问题出在条件上。 : $(document).ready(function ($) {
我的构造函数的目标是: 打开一个文件读入特定字符串(“%%%%%”)之间存在的所有内容将每个读取行放在一个变量(历史记录)中将最终变量添加到 char 类型的双指针 (_stories)关闭文件。 但
我正在使用 Visual Studio 2005 和 IIS 6.0.. 我在事件日志中有这个警告。我试图找到它是什么。我工作时从未经历过这个异常(exception)。可以做什么,在哪里可以做,不再
我是一名优秀的程序员,十分优秀!