node-zoom2
Version:
z39.50 with Node 12+ support
96 lines (66 loc) • 1.97 kB
Markdown
NODE-ZOOM2
=========
[](https://nodei.co/npm/node-zoom2/)
[](https://travis-ci.org/dengelke/node-zoom2)
[](https://coveralls.io/github/dengelke/node-zoom2?branch=master)
### Requirements
* [YAZ](http://www.indexdata.dk/yaz/)
#### Debian/Ubuntu
```bash
sudo apt-get install -y libyaz5-dev
```
#### Mac
```bash
brew install yaz
```
#### Windows
Install yaz5 for your respective operating system version via the FTP links for ([x86](https://ftp.indexdata.com/pub/yaz/win32/) or [x64](https://ftp.indexdata.com/pub/yaz/win64/)) 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
```bash
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)
```bash
./preinstall.sh
```
Which will initalize the IndexData repository
## Example
```javascript
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`