Парсер Nearley запускается 36 раз, когда принимает огромную строку с «\ n» через запрос POST.

Я использую JavaScript для простого запроса POST, который получает огромные блоки строки. Затем я беру эту строку и пропускаю ее через свой синтаксический анализатор Nearley.

При форматировании, как показано ниже, и запуске моего парсера все в порядке.

      const sampleResRej = `HX1V03E          000000000026548985456620210325                                 
HXH45741081158426983554B0177182HCPP015326                                      
HXTA084C  0028700444120611                                      VJ7V21         
HXTE542C  0011550144498611356                                   VJ7            
HXTZ101C  0025750175321611                                      VJ7V21         
HXH5098919292B78546555520155555HCPP266510                                     K
HXTA084A  0028709875600713                                      VJ7V21         
HXTE542A  0011554522200713356                                   VJ7            
HXTG370A  0020255555200713                                      VJ7            
HX90000066000000000001290000000                                                `

Однако из-за разрывов новой строки мой запрос POST не примет его.

Чтобы преодолеть это, я просто добавляю "\n" в конце каждой строки вручную и объединяю все в одну длинную строку.

Однако теперь мой парсер запускается 36 раз, несмотря на то, что отправил строку через мой запрос POST только один раз.

Я даже использовал console.log, чтобы проверить, проходит ли он через мой почтовый запрос несколько раз, но это не так.

Почему он это делает и, что более важно, как это исправить? Имейте в виду, что добавление "\n" было единственным решением, которое я мог придумать. Если у кого-то есть что-то получше, я открыт для предложений.

Вот код моего запроса POST:

      app.post('/responseInfo', (req, res) => {
    console.log("This is app.js RESPONSE .d", req.body.d)

    // This returns the parsed req.body for Insomnia
    const responseClaim = responseClaimParser(req.body.d);

    res.set({
        'Content-type': 'application/octet-stream',
        'Content-disposition': 'attachment; filename=file.txt',
    })

    res.send(responseClaim);
})

Вот код моего парсера Nearley:

      
const parseResponseClaim = function (responseClaim) {
    try {       
        parser.feed(responseClaim)      
        return parser.results
    } catch (e) {
        console.log(e.message);
    }
}

0 ответов

Другие вопросы по тегам