eggjs / eggjs/egg

使用egg-Sequelize model添加associate属性报错

Open
#4,435 7 comments 0 reactions 0 assignees View on GitHub
Inactive
Dominant language
TypeScript
Stars
19k
Forks
1.8k
PR merge metrics
No merged PRs in 30d

Description

## What happens?
仿照官方demo,但是报错

## Mini Showcase Repository(REQUIRED)
```javascript

const NewModel = app.model.define("new", {
id: { type: INTEGER, primaryKey: true, autoIncrement: true },
name: STRING(24),
sort: INTEGER(),
des: TEXT(),
main_img: TEXT(),
main_content: TEXT(),
status: INTEGER(),
created_at: DATE,
updated_at: DATE,
});

NewModel.associate = function () {
app.model.NewModel.belongsToMany(app.model.newsCategory, {
as: "Tasks",
through: app.model.categoryForNewModel,
foreignKey: "userId",
});
};
```
error info

```shell
TSError: [egg-core] load file: /Users/skylee/wordspace/merculet-official-website-backend/app/model/news.ts, error: ⨯ Unable to compile TypeScript:
app/model/news.ts(18,12): error TS2339: Property 'associate' does not exist on type 'typeof Model'.

at createTSError (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/ts-node/src/index.ts:261:12)
at getOutput (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/ts-node/src/index.ts:367:40)
at Object.compile (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/ts-node/src/index.ts:558:11)
at Module.m._compile (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/ts-node/src/index.ts:439:43)
at Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
at Object.require.extensions. [as .ts] (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/ts-node/src/index.ts:442:12)
at Module.load (internal/modules/cjs/loader.js:977:32)
at Function.Module._load (internal/modules/cjs/loader.js:877:14)
at Module.require (internal/modules/cjs/loader.js:1019:19)
at require (internal/modules/cjs/helpers.js:77:18)
at Object.loadFile (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/utils/index.js:27:19)
at getExports (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/loader/file_loader.js:199:23)
at FileLoader.parse (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/loader/file_loader.js:158:25)
at FileLoader.load (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/loader/file_loader.js:67:24)
at AppWorkerLoader.loadToApp (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/loader/egg_loader.js:388:25)
at loadDatabase (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-sequelize/lib/loader.js:101:16)
at module.exports (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-sequelize/lib/loader.js:32:20)
at module.exports (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-sequelize/app.js:4:26)
at Hook.configDidLoad (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/lifecycle.js:91:9)
at Lifecycle.triggerConfigDidLoad (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/lifecycle.js:145:14)
at Lifecycle.triggerConfigWillLoad (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/lifecycle.js:139:10)
at AppWorkerLoader.loadCustomApp (/Users/skylee/wordspace/merculet-official-website-backend/node_modules/egg-core/lib/loader/mixin/custom.js:37:20)

```

## How To Reproduce

**Steps to reproduce the behavior:**
1.
2.

**Expected behavior**
1.
2.

## Context
- **Node Version**:
v12.16.3
- **Egg Version**:
"egg": "^2.6.1",

- **Plugin Name**:
"egg-scripts": "^2.6.0",
"egg-sequelize": "^5.2.2",

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.