
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
A simple node.js module that resolves books by ISBN using multiple services:
ISBNDB_API_KEY$ npm install node-isbn
Supports Node.js versions 6.x and greater.
var isbn = require('node-isbn');
isbn.resolve('0735619670', function (err, book) {
if (err) {
console.log('Book not found', err);
} else {
console.log('Book found %j', book);
}
});
var isbn = require('node-isbn');
isbn.resolve('0735619670', { timeout: 15000 }, function (err, book) {
if (err) {
console.log('Book not found', err);
} else {
console.log('Book found %j', book);
}
});
var isbn = require('node-isbn');
isbn.resolve('0735619670').then(function (book) {
console.log('Book found %j', book);
}).catch(function (err) {
console.log('Book not found', err);
});
Response follows the same schema, but some fields could depend on the service that was used to find the book. In general, Google Books API returns more information.
{
"title": "Code Complete",
"authors": [
"Steve McConnell"
],
"publisher": "O'Reilly Media, Inc.",
"publishedDate": "2004",
"description": "Features the best practices in the art and...",
"industryIdentifiers": [
{
"type": "OTHER",
"identifier": "UCSC:32106018687688"
}
],
"readingModes": {
"text": false,
"image": false
},
"pageCount": 914,
"printType": "BOOK",
"categories": [
"Computers"
],
"averageRating": 4,
"ratingsCount": 123,
"contentVersion": "preview-1.0.0",
"imageLinks": {
"smallThumbnail": "http://books.google.com/books/content?id=QnghAQAAIAAJ&printsec=frontcover&img=1&zoom=5&source=gbs_api",
"thumbnail": "http://books.google.com/books/content?id=QnghAQAAIAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api"
},
"language": "en",
"previewLink": "http://books.google.es/books?id=QnghAQAAIAAJ&dq=isbn:0735619670&hl=&cd=1&source=gbs_api",
"infoLink": "http://books.google.es/books?id=QnghAQAAIAAJ&dq=isbn:0735619670&hl=&source=gbs_api",
"canonicalVolumeLink": "http://books.google.es/books/about/Code_Complete.html?hl=&id=QnghAQAAIAAJ"
}
You can optionally specify the providers that you want to use, in the order you need them to be invoked.
// This request will search first in the Open Library API and then in the Google Books API
isbn.provider(['openlibrary', 'google'])
.resolve('0735619670')
.then(function (book) {
console.log('Book found %j', book);
}).catch(function (err) {
console.log('Book not found', err);
});
// This request will search ONLY in the Google Books API
isbn.provider(['google'])
.resolve('0735619670')
.then(function (book) {
console.log('Book found %j', book);
}).catch(function (err) {
console.log('Book not found', err);
});
If you do not like using strings to specify the providers, you could grab the providers from isbn.PROVIDER_NAMES constant that the library provides!
// This request will search ONLY in the Google Books API
isbn.provider([isbn.PROVIDER_NAMES.GOOGLE])
.resolve('0735619670')
.then(function (book) {
console.log('Book found %j', book);
}).catch(function (err) {
console.log('Book not found', err);
});
AGPL v3.0 LICENSE http://www.gnu.org/licenses/agpl-3.0.html
See also Google Books API Terms of Service, Open Library Licensing, WorldCat xISBN Terms of Service, ISBNdb Terms and Conditions.
$ npm test
FAQs
Find books by ISBN
We found that node-isbn demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.