Skip to content

CSNW/node-sqlite3

 
 

Repository files navigation

NAME

node-sqlite3 - Asynchronous, non-blocking SQLite3 bindings for Node.js 0.2-0.4 (versions 2.0.x), 0.6.13+, 0.8.x, and 0.10.x (versions 2.1.x).

Build Status npm package version

USAGE

Note:   the module must be installed before use.

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');

db.serialize(function() {
  db.run("CREATE TABLE lorem (info TEXT)");

  var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
  for (var i = 0; i < 10; i++) {
      stmt.run("Ipsum " + i);
  }
  stmt.finalize();

  db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
      console.log(row.id + ": " + row.info);
  });
});

db.close();

FEATURES

API

See the API documentation in the wiki.

INSTALLING

You can use npm to download and install:

  • The latest sqlite3 package: npm install sqlite

  • GitHub's master branch: npm install https://github.com/developmentseed/node-sqlite3/tarball/master

In both cases the module is automatically built with npm's internal version of node-gyp, and thus your system must meet node-gyp's requirements.

You can also make your own build of sqlite3 from the source (see the next section for details).

BUILDING

Unless building via npm install (which uses its own node-gyp) you will need node-gyp installed globally:

npm install node-gyp -g

The sqlite3 module depends only on libsqlite3. However, by default, an internal/bundled copy of sqlite will be built and statically linked, so an externally installed sqlite3 is not required.

If you wish to install against an external sqlite then you need to pass the --sqlite argument to node-gyp, npm install or the configure wrapper.

./configure --sqlite=/usr/local
make

Or, using the node-gyp directly:

 node-gyp --sqlite=/usr/local
 make

Or, using npm:

 npm install --sqlite=/usr/local

If building against an external sqlite3 make sure to have the development headers available. Mac OS X ships with these by default. If you don't have them installed, install the -dev package with your package manager, e.g. apt-get install libsqlite3-dev for Debian/Ubuntu. Make sure that you have at least libsqlite3 >= 3.6.

Note, if building against homebrew-installed sqlite on OS X you can do:

./configure --sqlite=/usr/local/opt/sqlite/
make

TESTING

mocha is required to run unit tests.

In sqlite3's directory (where its package.json resides) run the following:

npm install mocha
npm test

CONTRIBUTORS

ACKNOWLEDGEMENTS

Thanks to Orlando Vazquez, Eric Fredricksen and Ryan Dahl for their SQLite bindings for node, and to mraleph on Freenode's #v8 for answering questions.

Development of this module is sponsored by Development Seed.

LICENSE

node-sqlite3 is BSD licensed.

About

Asynchronous, non-blocking SQLite3 bindings for Node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 47.5%
  • C++ 42.6%
  • C 9.0%
  • Python 0.9%