網站重構——輕量化的網站架構設計一,使用nodejs sqlite3查詢資料

Phodal發表於2014-03-17

終於可以試著開始重寫自己部落格的框架,這又是一個愉快的過程,不再需要去考慮網站被迫關閉幾天的問題,我們想要的結果就是從dev.db中讀取到我們想要的資料,這就是這篇文章所要表達的內容。

nodejs

如果你瞭解過nodejs的話,剩下的就簡單了。

安裝node-sqlite3

這裡用到的模組就是這個了node-sqlite3

 npm install sqlite3

node-sqlite3 api

常用的API大致有下面這些

  • new sqlite3.Database(filename, [mode], [callback])
  • Database#run(sql, [param, ...], [callback])
  • Database#get(sql, [param, ...], [callback])
  • Database#all(sql, [param, ...], [callback])
  • Database#each(sql, [param, ...], [callback], [complete])
  • Database#exec(sql, [callback])
  • Database#prepare(sql, [param, ...], [callback])
  • ...

如官網的示例,我們只需要


db = new sqlite3.Database('chain.sqlite3', createTable);
db.run("CREATE TABLE IF NOT EXISTS lorem (info TEXT)", insertRows);
var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
db.all("SELECT rowid AS id, info FROM lorem", function(err, rows) {});
db.close();

與現有的資料庫工作

資料庫的名字叫

 sqlite3.db

我們需要執行的查詢命令是


SELECT id,content,title,description FROM blog_blogpost

最終程式碼


"use strict";

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

function readAllRows() {
    console.log("readAllRows lorem");
    db.all("SELECT id,content,title,description FROM blog_blogpost", function(err, rows) {
        rows.forEach(function (row) {
            console.log(row.id + ": " + row.title);
        });
        closeDb();
    });
}

function closeDb() {
    console.log("closeDb");
    db.close();
}

readAllRows();

執行一下

node sqlite3.js

結果如下所示


readAllRows lorem
1: ...
215: rhino javascript,用rhino搭建本地的javascript環境
216: be a geek 8:無處不在的三劍客
217: dip 依賴倒置原則小試
218: OO notes 物件導向程式設計筆記
closeDb

相關文章