从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析

2020-06-17 07:03:16易采站长站整理

本文实例讲述了Node.js中SQLite3和MongoDB的用法。分享给大家供大家参考,具体如下:

setup.js:初始化数据库


var util = require('util');
var async = require('async'); //npm install async
var notesdb = require('./nodesdb-sqlite3');
// var notesdb = require('./notesdb-mongoose');
notesdb.connect(function(error){
if (error) throw error;
});
notesdb.setup(function(error){
if (error){
util.log('ERROR ' + error);
throw error;
}
async.series([ //async.series函数可以控制函数按顺序执行,从而保证最后的函数在所有其他函数完成之后执行
function(cb){
notesdb.add("test", "testtest",
function(error){
if (error) util.log('ERROR ' + error);
cb(error);
});
}
],
function(error, results){
if (error) util.log('ERROR ' + error);
notesdb.disconnect(function(err){});
}
);
});

nodesdb-sqlite3.js

SQLite3 是一个轻量级的进程内SQL引擎

它是一个无服务器且无需配置的SQL数据库引擎,仅仅是作为一个独立的库被链接到应用程序上

npm install sqlite3 安装此模块之前先在系统上安装sqlite3库 http://www.sqlite.org/download.html 下载


//数据库接口库
var util = require('util');
var sqlite3 = require('sqlite3');
sqlite3.verbose();
var db = undefined;
/*
数据库名是直接硬编码的,所以当调用connect和setup函数时,当前目录中就会生成chap06.sqlite3文件
*/
exports.connect = function(callback){
db = new sqlite3.Database("chap06.sqlite3", sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
function(err){
if (err){
util.log('FAIL on creating database ' + err);
callback(err);
} else {
callback(null);
}
});
}
//此处的disconnect函数是空的
exports.disconnect = function(callback){
callback(null);
}
exports.setup = function(callback){
db.run("CREATE TABLE IF NOT EXISTS notes " +
"(ts DATETIME, author VARCHAR(255), note TEXT)",
function(err){
if (err){
util.log('FAIL on creating table ' + err);
callback(err);
} else {
callback(null);
}
});
}
exports.emptyNote = {"ts": "", author: "", note: ""};
exports.add = function(author, note, callback){
db.run("INSERT INTO notes (ts, author, note) " +
"VALUES (?, ?, ?);",
[new Date(), author, note],
function(error){
if (error){
util.log('FAIL on add ' + error);
callback(error);
} else {
callback(null);
}
});
}