Objection.js хочет много-много проблем в отношениях

Мне нравится анализировать HTML с регулярными выражениями. Я не пытаюсь разбирать идиот HTML, который намеренно нарушен. Этот код является моим основным парсером (версия Perl):

$_ = join "",; tr/\n\r \t/ /s; s//>\n/g; s/\n ?\n/\n/g;
s/^ ?\n//s; s/ $//s; print

Он называется htmlsplit, разбивает HTML на строки, с одним тегом или фрагментом текста в каждой строке. Затем линии могут быть обработаны другими текстовыми инструментами и сценариями, такими как grep , sed , Perl и т. Д. Я даже не шучу :) Наслаждайтесь.

Достаточно просто переписать мой скрипт Perl-all-first Perl в приятную поточную вещь, если вы хотите обрабатывать огромные веб-страницы. Но это действительно не обязательно.

Бьюсь об заклад, я заберусь для этого.

HTML Split


Против моего ожидая, что это получило некоторые upvotes, поэтому я предлагаю несколько правильных выражений:

/(<.*?>|[^<]+)\s*/g    # get tags and text
/(\w+)="(.*?)"/g       # get attibutes

Они хороши для XML / XHTML.

С небольшими вариациями он может справиться с беспорядочным HTML ... или сначала конвертировать HTML -> XHTML.


Лучший способ записи регулярных выражений - в Lex / Yacc стиль, а не непрозрачные однострочные или прокомментированные многострочные чудовища. Я не делал этого здесь; эти им едва ли нужны.

0
задан atwright147 17 March 2019 в 20:37
поделиться

1 ответ

Это оказалось проблемой конфигурации babel.

Когда я изменил код, чтобы он выглядел следующим образом, он работал:

import path from 'path';
import { Model } from 'objection';

import { BaseModel } from './base.model';

export class Group extends BaseModel {
    static get tableName() {
        return 'groups';
    }

    static get relationMappings() {
        return {
            users: {
                modelClass: path.join(__dirname, 'user.model'),
                relation: Model.ManyToManyRelation,
                join: {
                    from: 'groups.id',
                    through: {
                        from: 'users_groups.group_id',
                        to: 'users_groups.user_id'
                    },
                    to: 'users.id',
                }
            }
        };
    }
}

import path from 'path';
import { Model } from 'objection';

import { BaseModel } from './base.model'

export class User extends BaseModel {
    static get tableName() {
        return 'users';
    }

    static get relationMappings() {
        return {
            groups: {
                modelClass: path.join(__dirname, 'group.model'),
                relation: Model.ManyToManyRelation,
                join: {
                    from: 'users.id',
                    through: {
                        from: 'users_groups.user_id',
                        to:   'users_groups.group_id'
                    },
                    to: 'groups.id'
                }
            }
        };
    }
}
0
ответ дан atwright147 17 March 2019 в 20:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: