z39.50 with Node 12+ support


Keywords
zoom, z39.50, marc, marcxml, iso2709
License
MIT
Install
npm install node-zoom2@0.9.2

Documentation

NODE-ZOOM2

npm package

Build Status Coverage Status

Requirements

Debian/Ubuntu

sudo apt-get install -y libyaz5-dev

Mac

brew install yaz

Windows

Install yaz5 for your respective operating system version via the FTP links for (x86 or x64) making sure to install YAZ to default Program Files location and add YAZ to system path.

Note: Installing x86 version on x64 OS will not work

Installation

npm i node-zoom2

Common Installation Issues

If libyaz5-dev is not available on your distributions package manager by default run (or have a look at)

./preinstall.sh

Which will initalize the IndexData repository

Example

var zoom = require('node-zoom2');

zoom.connection('192.83.186.170:210/INNOPAC')
.set('preferredRecordSyntax', 'usmarc')
.query('prefix', '@attr 1=7 ' + '9780073383095')
.createReadStream()
.on('data', function (record) {
  console.log(record.json, record.xml, record.raw);
})
.on('close', function(close) {
  process.exit(1);
})

API

Connection

  • #set(optName, optValue)
  • #get(optName)
  • #query([type], querystring)
  • #search(callback)
  • #createReadStream([options])
  • #destroy()

ResultSet

  • .size
  • #destroy()
  • #getRecords(start, count, callback)

Records

  • #hasNext()
  • #next()

Record

  • .json
  • .database
  • .syntax
  • .schema
  • .render
  • .raw
  • .xml
  • .txml