항목을 연결하려고 할 때 '연결되지 않음'으로 실패하는 다 대다 연속화?

안드레 M

Sequelize의 다 대다 구성에 문제가 site_article_keyword is not associated to article_keyword있습니다. 아래 코드는 내가 뭘 잘못하고 있는지 이해하기위한 최소한의 테스트 케이스를 나타냅니다 (작은 것을 제공하고 싶었지만 이것이 내가 가진 것입니다). Promise API에 bluebird를 사용하고 있습니다.

const Sequelize = require('sequelize');

var sequelize = new Sequelize(undefined, undefined, undefined, {
    dialect: 'sqlite',
    storage: './mydatabase',
});

const SiteArticle = sequelize.define('site_article', {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    ownerId: {
        type: Sequelize.INTEGER,
        field: 'owner_id'
    },
    title: Sequelize.STRING
        // other fields omitted
}, {
    timestamps: true
});

const ArticleKeyword = sequelize.define('article_keyword', {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    name: Sequelize.STRING,
    language: Sequelize.STRING
        // other fields omitted
}, {
    timestamps: true
});

const SiteArticleKeyword = sequelize.define('site_article_keyword', {
    siteArticleId: {
        type: Sequelize.INTEGER,
        field: 'site_article_id',
        references: {
            model: SiteArticle,
            key: 'id'
        }
    },
    articleKeywordId: {
        type: Sequelize.INTEGER,
        field: 'article_keyword_id',
        references: {
            model: ArticleKeyword,
            key: 'id'
        }
    }
    // other fields omitted
}, {
    timestamps: true
});

(ArticleKeyword).belongsToMany(
    SiteArticle, { through: SiteArticleKeyword });

(SiteArticle).belongsToMany(
    ArticleKeyword, { through: SiteArticleKeyword });

이것이 바로 소스 및 대상 항목을 생성하기 위해 정의 된 모델입니다. 실패는 내가 전화하는 라인에서 발생합니다 ArticleKeyword.findAll().

sequelize.sync({}).then(function() {

    // populate some data here

    let siteArticle;

    SiteArticle.create({
        ownerId: 1,
        title: 'hello world'
    }).then(function(entry) {
        siteArticle = entry;
        console.log('site article: ', JSON.stringify(entry, undefined, 2));

        return ArticleKeyword.findOrCreate({
            where: {
                name: 'keyword1',
                language: 'en'
            }
        });
    }).spread(function(entry, success) {
        console.log('article keyword: ', JSON.stringify(entry, undefined, 2));
        return siteArticle.addArticle_keyword(entry);
    }).spread(function(entry, success) {
        console.log('site article keyword: ', JSON.stringify(entry, undefined, 2));

        const siteArticleId = 1;
        const language = 'en';

        return ArticleKeyword.findAll({
            where: {
                language: language,
            },
            include: [{
                model: SiteArticleKeyword,
                where: {
                    siteArticleId: siteArticleId
                }
            }]
        });
    }).then(function(articleKeywords) {
        if (articleKeywords) {
            console.log('entries: ', JSON.stringify(articleKeywords, undefined, 2));
        } else {
            console.log('entries: ', 'none');
        }
    }).catch(function(error) {
        console.log('ERROR: ', error);
    }.bind(this));

}).catch(function(error) {
    console.log(error);
});

Sequelize 문서 의 ' Mixin OwnerToMany '예제를 기반으로 코드를 작성하고 있습니다.

누구든지 내가 뭘 잘못하고 있는지 제안 할 수 있습니까?

살리 세놀 카카 르시

관계를 통해 다음이 작동해야합니다.

ArticleKeyword.findAll({
  include: [{
    model: SiteArticle,
    through: {
      attributes: ['createdAt', 'startedAt', 'finishedAt'],
      where: {siteArticleId: siteArticleId
    }
  }]
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SSH를 사용하여 내 상자에 연결하려고 할 때마다 연결되지 않습니다.

분류에서Dev

Windows XP는 VPN으로 연결할 때 정규화되지 않은 이름을 확인할 수 없습니다.

분류에서Dev

결과를 검색하려고 할 때 PHP 클래스로 DB에 연결이 작동하지 않습니다.

분류에서Dev

localhost 연결을 사용할 때 IP를 사용하면 연결되지 않습니다.

분류에서Dev

세션 연결을 끊지 않고 SSH를 통해 원격 서버에 로그인 할 때마다 자동으로 명령을 실행하는 방법

분류에서Dev

삼항 연산자의 두 결과를 연결할 때 Java에서 문자열 연결이 제대로 작동하지 않습니다.

분류에서Dev

Ubuntu Sofware Center는 Cisco VPN에 연결되어있을 때 패키지를 다운로드하지 않습니다.

분류에서Dev

Rust에서 Postgres에 연결하려고 할 때 다음이 컴파일되지 않는 이유는 무엇입니까?

분류에서Dev

Wi-Fi에 연결할 때마다 자동으로 연결이 끊어지고 "(2) 활성 연결이 초기화되기 전에 실패했습니다."라는 메시지가 표시됩니다.

분류에서Dev

GetModuleFileNameExA는 psapi.dll (Windows)에서 런타임에 함수를 연결하려고 할 때 제대로 작동하지 않습니다.

분류에서Dev

고유 포인터를 사용하는 연결된 목록이 예상대로 실행되지 않습니다.

분류에서Dev

내 프로젝트를 실행하려고 할 때 "JDBC 연결을 얻을 수 없습니다"라는 메시지가 표시됩니다.

분류에서Dev

ServerSocket 및 소켓을 사용할 때 BufferedReader가 중단되고 연결이 제대로 형성되지 않는 것처럼 보입니다.

분류에서Dev

DataSet을 채울 때 연결 속성이 초기화되지 않았습니다.

분류에서Dev

DataSet을 채울 때 연결 속성이 초기화되지 않았습니다.

분류에서Dev

MTM에 연결하려고 할 때 Visual Studio 관련 자동화에 테스트가 표시되지 않음

분류에서Dev

nmcli는 nm-applet이 실행되고 있지 않을 때 VPN에 연결하려면 암호가 필요합니다.

분류에서Dev

컴퓨터 이름을 사용하는 명령 프롬프트에서 ping에 "대상 호스트에 연결할 수 없음"이라고 표시되지만 Ip 주소를 사용하여 ping 할 때 제대로 작동합니다.

분류에서Dev

연결 후 값은 부동으로 변경되고 int에 남아 있지 않습니다 (연결 전에 변환하려고했습니다.)

분류에서Dev

tmux로 셸을 시작하고 연결되지 않은 경우에만 세션에 연결합니다.

분류에서Dev

정의되지 않음이 OR 연산의 다음 항목으로 연결됩니까?

분류에서Dev

닫힌 연결에 쓰려고 할 때 소켓에서 예외가 발생하지 않습니다.

분류에서Dev

다른 페이지 플라스크에 연결하려고 할 때 404 오류

분류에서Dev

CSS 애니메이션 연결은 지연을 고려하지 않습니다.

분류에서Dev

Mongo가 처음 연결할 때 서버에 연결하지 못했습니다.

분류에서Dev

MySQL 데이터베이스에 연결하려고 할 때 PHP가 실행되지 않음

분류에서Dev

내가 무엇을 시도하든 Samba 공유는 Windows를 통해 연결하려고 할 때 로그인 프롬프트를 유지합니다.

분류에서Dev

마지막으로 연결 약속을 사용할 때 마지막`.then` 전에 실행됩니다.

분류에서Dev

FTP 서버에 대한 연결은 때때로 작동하고 다른 것은 작동하지 않습니다.

Related 관련 기사

  1. 1

    SSH를 사용하여 내 상자에 연결하려고 할 때마다 연결되지 않습니다.

  2. 2

    Windows XP는 VPN으로 연결할 때 정규화되지 않은 이름을 확인할 수 없습니다.

  3. 3

    결과를 검색하려고 할 때 PHP 클래스로 DB에 연결이 작동하지 않습니다.

  4. 4

    localhost 연결을 사용할 때 IP를 사용하면 연결되지 않습니다.

  5. 5

    세션 연결을 끊지 않고 SSH를 통해 원격 서버에 로그인 할 때마다 자동으로 명령을 실행하는 방법

  6. 6

    삼항 연산자의 두 결과를 연결할 때 Java에서 문자열 연결이 제대로 작동하지 않습니다.

  7. 7

    Ubuntu Sofware Center는 Cisco VPN에 연결되어있을 때 패키지를 다운로드하지 않습니다.

  8. 8

    Rust에서 Postgres에 연결하려고 할 때 다음이 컴파일되지 않는 이유는 무엇입니까?

  9. 9

    Wi-Fi에 연결할 때마다 자동으로 연결이 끊어지고 "(2) 활성 연결이 초기화되기 전에 실패했습니다."라는 메시지가 표시됩니다.

  10. 10

    GetModuleFileNameExA는 psapi.dll (Windows)에서 런타임에 함수를 연결하려고 할 때 제대로 작동하지 않습니다.

  11. 11

    고유 포인터를 사용하는 연결된 목록이 예상대로 실행되지 않습니다.

  12. 12

    내 프로젝트를 실행하려고 할 때 "JDBC 연결을 얻을 수 없습니다"라는 메시지가 표시됩니다.

  13. 13

    ServerSocket 및 소켓을 사용할 때 BufferedReader가 중단되고 연결이 제대로 형성되지 않는 것처럼 보입니다.

  14. 14

    DataSet을 채울 때 연결 속성이 초기화되지 않았습니다.

  15. 15

    DataSet을 채울 때 연결 속성이 초기화되지 않았습니다.

  16. 16

    MTM에 연결하려고 할 때 Visual Studio 관련 자동화에 테스트가 표시되지 않음

  17. 17

    nmcli는 nm-applet이 실행되고 있지 않을 때 VPN에 연결하려면 암호가 필요합니다.

  18. 18

    컴퓨터 이름을 사용하는 명령 프롬프트에서 ping에 "대상 호스트에 연결할 수 없음"이라고 표시되지만 Ip 주소를 사용하여 ping 할 때 제대로 작동합니다.

  19. 19

    연결 후 값은 부동으로 변경되고 int에 남아 있지 않습니다 (연결 전에 변환하려고했습니다.)

  20. 20

    tmux로 셸을 시작하고 연결되지 않은 경우에만 세션에 연결합니다.

  21. 21

    정의되지 않음이 OR 연산의 다음 항목으로 연결됩니까?

  22. 22

    닫힌 연결에 쓰려고 할 때 소켓에서 예외가 발생하지 않습니다.

  23. 23

    다른 페이지 플라스크에 연결하려고 할 때 404 오류

  24. 24

    CSS 애니메이션 연결은 지연을 고려하지 않습니다.

  25. 25

    Mongo가 처음 연결할 때 서버에 연결하지 못했습니다.

  26. 26

    MySQL 데이터베이스에 연결하려고 할 때 PHP가 실행되지 않음

  27. 27

    내가 무엇을 시도하든 Samba 공유는 Windows를 통해 연결하려고 할 때 로그인 프롬프트를 유지합니다.

  28. 28

    마지막으로 연결 약속을 사용할 때 마지막`.then` 전에 실행됩니다.

  29. 29

    FTP 서버에 대한 연결은 때때로 작동하고 다른 것은 작동하지 않습니다.

뜨겁다태그

보관