This library implements a client to retrieve records via Search/Retrieve via URL (SRU) API.
import createClient from '@natlibfi/sru-client';
const client = createClient({url: 'https://foo.bar', recordSchema: 'marcxml'});
client.searchRetrieve('foo')
.on('record', record => processRecord(string))
.on('total', totalNumberOfRecords => doSomething(totalNumberOfRecords))
.on('end', () => endProcessing())
.on('error', err => handleError(err));
import createClient from '@natlibfi/sru-client';
const client = createClient({url: 'https://foo.bar', recordSchema: 'marcxml', retrieveAll: false});
client.searchRetrieve('foo')
.on('record', record => processRecord(record))
.on('total', totalNumberOfRecords => doSomething(totalNumberOfRecords))
.on('end', nextRecordOffset => endProcessing(nextRecordOffset))
.on('error', err => handleError(err));
import createClient from '@natlibfi/sru-client';
const client = createClient({url: 'https://foo.bar', recordSchema: 'marcxml', maxRecordsPerRequest: 0, retrieveAll: false});
client.searchRetrieve('foo')
.on('total', totalNumberOfRecords => doSomething(totalNumberOfRecords))
.on('end', () => endProcessing())
.on('error', err => handleError(err));
string
(default) or object
(XML parsed by xml2js).The first parameter is the mandatory CQL query string. Second is an optional object which supports the following properties:
The totalNumberOfRecords returned by the total event is limited to the maximum number of records provided by server. Ie. if the SRU servers limit for search and retrieve is 20 000 records, 20 000 is the maximum totalNumberOfRecords available, even if the server's database actually contains more records matching the query.
The library uses module debug to optionally emit debugging information.
Cli use needs enviroment variable SRU_URL
Copyright (c) 2015, 2017-2018, 2020-2024 University Of Helsinki (The National Library Of Finland)
This project's source code is licensed under the terms of MIT.