国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

nodejs集成sqlite使用示例

2024-05-06 15:16:18
字體:
來源:轉載
供稿:網友

正在物色node上面的輕量級嵌入式數據庫,作為嵌入式數據庫的代表,sqlite無疑是個理想的選擇方案。npm上集成sqlite的庫主要有兩個——sqlite3和realm。

realm是一個理想的選擇方案,它最初是為移動app設計的,在node也可以運行的,但是不支持Windows系統。sqlite3是一個專為nodejs設計的,在nodejs上面生態更健壯,因此最終選擇sqlite3。

sqlite3幾乎支持所有版本的nodejs,同時也可以和nwjs集成。

安裝

基于npm安裝

npm install sqlite3

這樣除了安裝完sqlite3的npm包,最主要的是也裝完了sqlite數據庫,因為sqlite是嵌入式數據庫,嵌入到客戶端中。sqlite3使用node-pre-gyp為各個平臺下載指定的預編譯的二進制文件。如果無法下載到預編譯的二進制文件,sqlite3將使用node-gyp和源代碼來構建擴展。

這個過程出現兩個的庫——node-pre-gyp和node-gyp。他們究竟是什么呢?

node-gyp是一個跨平臺的命令行工具,用于編譯C++編寫的nodejs擴展,首先gyp是為Chromium項目創建的項目生成工具,可以從平臺無關的配置生成平臺相關的Visual Studio、Xcode、Makefile的項目文件,node-gyp就是將其集成到nodejs中。因為linux的二進制分發快平臺做的并不好,所有npm為了方便干脆就直接源碼分發,用戶裝的時候再現場編譯。不過對有些項目二進制分發就比源碼分發簡單多了,所以還有個node-pre-gyp來直接二進制擴展的分發。

兩者區別在于node-gyp是發布擴展的源碼,然后安裝時候編譯;node-pre-gyp是直接發布編譯后的二級制形式的擴展。

和sqlite3一樣的需要基于node-gyp安裝的npm模塊也有很多,比如node-sass等,都是發布源代碼,然后編譯安裝。

基礎api 

sqlite3的api都是基于函數回調的,因為nodejs中沒有像java的jdbc那種官方的數據庫客戶端接口,因此每個數據庫的api都不一樣,這里簡單介紹幾個sqlite3重要的api。

新建并打開數據庫

new sqlite3.Database(filename, [mode], [callback])

該方法返回一個自動打開的數據庫對象,參數:

filename:有效值是一個文件名,如:“mydatebase.db”,數據庫打開之后會創建一個“mydatebase.db”的文件用于保存數據。如果文件名是“:memory:”,表示是一個內存數據庫(類似h2那種),數據不會持久化保存,當關閉數據庫時,內容將丟失。

mode(可選):數據庫的模式,共3種值:sqlite3.OPEN_READONLY(只讀),sqlite3.OPEN_READWRITE(可讀寫)和sqlite3.OPEN_CREATE(可以創建)。 默認值為OPEN_READWRITE |OPEN_CREATE。

callback(可選):則當數據庫成功打開或發生錯誤時,將調用此函數。 第一個參數是一個錯誤對象,當它為空時,表示打開成功。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 咸丰县| 依兰县| 泽普县| 成都市| 巴中市| 兰坪| 集安市| 定远县| 阿拉尔市| 台中市| 水富县| 中山市| 罗平县| 五台县| 泰安市| 余干县| 平武县| 巢湖市| 盐边县| 蛟河市| 白城市| 水城县| 武邑县| 长宁区| 安康市| 德庆县| 家居| 宾阳县| 延安市| 东宁县| 毕节市| 武威市| 内黄县| 山东省| 厦门市| 辽宁省| 丰都县| 新河县| 河西区| 东阿县| 石狮市|