欢迎来到【淘淘商城原版源码】【网页vip源码】【任务单源码】amy源码-皮皮网网站!!!

皮皮网

【淘淘商城原版源码】【网页vip源码】【任务单源码】amy源码-皮皮网 扫描左侧二维码访问本站手机端

【淘淘商城原版源码】【网页vip源码】【任务单源码】amy源码

2024-11-26 12:02:16 来源:{typename type="name"/} 分类:{typename type="name"/}

1.Node.js如何对SQLite的async/await封装详解
2.求广联达全套视频教程
3.Windows下MinGW-w64的安装

amy源码

Node.js如何对SQLite的async/await封装详解

        前言

       本文主要给大家介绍的是关于Node.js对SQLite的async/await封装的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

       用于将每个SQLite函数同步化,并可以用await的接口。

       注意:需要SQLite for Node模块和Node.js 8.0+,淘淘商城原版源码并支持async / await。

       SQLite最常用作本地或移动应用程序的存储单元,当需要从程序的各个部分访问数据时,回调不是最佳解决方案。

       为了在程序程序中更自然地访问数据,我编写了一个将回调转换为promises的接口,因此我们可以将每个函数与await关键字一起使用。 它不是异步函数的替代品,它是一个补充,可以将原始函数和同步函数一起使用。

       aa-sqlite模块

       SQLite的网页vip源码接口是一个名为aa-sqlite的模块,您必须将其存储在应用程序的node_modules部分中。这是完整的源代码

       const sqlite3 = require('sqlite3').verbose()

       var db

       exports.db = db

       exports.open=function(path) {

        return new Promise(function(resolve) {

        this.db = new sqlite3.Database(path,

        function(err) {

        if(err) reject("Open error: "+ err.message)

        else resolve(path + " opened")

        }

        )

        })

       }

       // any query: insert/delete/update

       exports.run=function(query) {

        return new Promise(function(resolve, reject) {

        this.db.run(query,

        function(err) {

        if(err) reject(err.message)

        else resolve(true)

        })

        })

       }

       // first row read

       exports.get=function(query, params) {

        return new Promise(function(resolve, reject) {

        this.db.get(query, params, function(err, row) {

        if(err) reject("Read error: " + err.message)

        else {

        resolve(row)

        }

        })

        })

       }

       // set of rows read

       exports.all=function(query, params) {

        return new Promise(function(resolve, reject) {

        if(params == undefined) params=[]

        this.db.all(query, params, function(err, rows) {

        if(err) reject("Read error: " + err.message)

        else {

        resolve(rows)

        }

        })

        })

       }

       // each row returned one by one

       exports.each=function(query, params, action) {

        return new Promise(function(resolve, reject) {

        var db = this.db

        db.serialize(function() {

        db.each(query, params, function(err, row) {

        if(err) reject("Read error: " + err.message)

        else {

        if(row) {

        action(row)

        }

        }

        })

        db.get("", function(err, row) {

        resolve(true)

        })

        })

        })

       }

       exports.close=function() {

        return new Promise(function(resolve, reject) {

        this.db.close()

        resolve(true)

        })

       }

       使用示例

       下面的示例展示了aa-sqlite的每个功能的示例。在第一部分中,我们打开一个数据库,添加一个表并用一些行填充该表。然后关闭数据库,我们再次打开它并执行一些同步查询。

       const fs = require("fs")

       const sqlite = require("aa-sqlite")

       async function mainApp() {

        console.log(await sqlite.open('./users.db'))

        // Adds a table

        var r = await sqlite.run('CREATE TABLE users(ID integer NOT NULL PRIMARY KEY,任务单源码 name text, city text)')

        if(r) console.log("Table created")

        // Fills the table

        let users = {

        "Naomi": "chicago",

        "Julia": "Frisco",

        "Amy": "New York",

        "Scarlett": "Austin",

        "Amy": "Seattle"

        }

        var id = 1

        for(var x in users) {

        var entry = `'${ id}','${ x}','${ users[x]}'`

        var sql = "INSERT INTO users(ID, name, city) VALUES (" + entry + ")"

        r = await sqlite.run(sql)

        if(r) console.log("Inserted.")

        id++

        }

        // Starting a new cycle to access the data

        await sqlite.close();

        await sqlite.open('./users.db')

        console.log("Select one user:")

        var sql = "SELECT ID, name, city FROM users WHERE name='Naomi'"

        r = await sqlite.get(sql)

        console.log("Read:", r.ID, r.name, r.city)

        console.log("Get all users:")

        sql = "SELECT * FROM users"

        r = await sqlite.all(sql, [])

        r.forEach(function(row) {

        console.log("Read:", row.ID, row.name, row.city)

        })

        console.log("Get some users:")

        sql = "SELECT * FROM users WHERE name=?"

        r = await sqlite.all(sql, ['Amy'])

        r.forEach(function(row) {

        console.log("Read:", row.ID, row.name, row.city)

        })

        console.log("One by one:")

        sql = "SELECT * FROM users"

        r = await sqlite.each(sql, [], function(row) {

        console.log("Read:", row.ID, row.name, row.city)

        })

        if(r) console.log("Done.")

        sqlite.close();

       }

       try {

        fs.unlinkSync("./users.db")

       }

       catch(e) {

       }

       mainApp()

       由于all方法返回一个row数组,我们使用forEach来处理每一行的内容。

       你可以在每个方法的情况下进行验证,即在程序显示“完成”之前处理返回的每一行。原始异步方法不会出现这种情况。

       参考并翻译自:/sql/sqlite-async-await.php

       总结

求广联达全套视频教程

       1. 广联达安装算量软件——电气工程专业学习视频,您可以通过以下链接下载:/c0xfzect

       2. 广联达安装算量软件——给排水工程专业学习视频,请点击以下链接进行下载:/c0e6mzgza4

       3. 广联达安装算量软件——通风空调工程专业学习源代码视频,可以通过此链接下载:/c0qiqzdet4

       4. 广联达安装算量软件——消防工程专业学习视频,神秘乾坤源码请使用以下链接进行下载:/clwdl

       5. 广联达CAD导图技巧视频学习,您可以在此链接下载:/c0ixxfbs

       6. 广联达钢筋学习视屏(上),请点击以下链接下载:/c0ikjydo1t

       7. 广联达钢筋学习视频(下),您可以通过此链接下载:/cq6l1qw

       8. 广联达图形算量软件GCL计算规则分析与使用技巧学习视频,请使用以下链接下载:/c0mrgagq

       9. 广联达软件计价学习视频,可以通过此链接下载:/c0amy9ylzn

       . 广联达图形算量软件GCL,您可以通过以下链接下载:/c0te9eg5b2

Windows下MinGW-w的安装

       MinGW的全称是:Minimalist GNU on Windows。它是svg动画源码将经典的C语言编译器GCC移植到了Windows平台下,并包含了WinAPI,因此可以将源代码编译为可在Windows中运行的可执行程序。

       MinGW还支持一些Windows不具备的Linux平台下的开发工具。简单来说,MinGW就是GCC的Windows版本。

       MinGW-w与MinGW的区别在于,MinGW只能编译生成位可执行程序,而MinGW-w则可以编译生成位或位可执行程序。因此,MinGW已经被MinGW-w所取代,MinGW也已经停止了更新,内置的GCC停留在4.8.1版本,而MinGW-w内置的GCC则更新到了8.1.0版本。

       MinGW-w的下载方式有两种:懒人模式(通过百度云直接下载)和官方下载。懒人模式的链接为pan.baidu.com/s/1aMyeF4...,提取码为mcv9。官方下载的步骤如下:

       第一步:访问官方地址mingw-w.org/doku.php。

       第二步:选择Downloads下载。

       第三步:进入SourceForge下载页面,选择MinGW-W-install.exe下载。

       MinGW-w的安装步骤如下:

       第一步:双击MinGW-W-install.exe。

       第二步:选择安装信息,包括Version、Architechture、Threads、Exception等。

       第三步:最终选择安装信息,并一路下一步。

       第四步:完成安装。

       配置环境变量:将安装的MinGW-w的bin文件夹地址复制到新增的空白变量位置里,即可完成MinGW-w的配置工作。

       验证安装成功:打开cmd窗口,输入gcc -v并按回车键,如果出现版本信息,则表示安装成功。