696 次浏览【转载需注明来源】
有的时候我们需要一些支持库,而快码有可能并没有封装,所以有能力的小伙伴可以自己尝试封装node的库,nodejs的支持库非常简单。
文章拿postgresql支持库作为封装讲解。
1、首先在你的电脑中新建一个文件夹,取名叫做:postgresql
2、接下来使用终端进入这个新建的文件夹:
【windows中可打开文件夹,然后按住shift键+鼠标右键,然后点击"在此处打开Powershell或在此处打开xxx终端"不同的windows系统可能显示不一样】
【mac系统可以直接在文件夹图标右键,点击新建位于文件夹位置的终端标签页】
【linux系统可以直接打开终端窗口,然后输入cd 文件夹全路径】
3、接下来在终端输入nodejs支持库的下载命令,例如postgresql支持库的下载命令为:
npm install pg --save
注意:mac和linux需要加上sudo,例如:
sudo npm installpg --save
解释:所有的nodejs库都可以通过终端下载,终端下载命令一般提供支持库的文档商那里都有备注,大多数时候我们会选择前去:gitee或者github找支持库资料。
4、输入终端下载命令,然后回车之行下载
上述截图代表已经下载完毕,下载完毕后,可以在文件夹中文件如下的文件:
5、接下来新建一个快码的桌面端项目,如下图:
6、在上图中,创建了一个最基础的桌面端项目;并创建了名叫:我的支持库文件的ljs文件,然后接下来我们打开这个文件所在路径;并将上面第四步流程下载的node_modules文件夹拷贝到我的支持库文件.ljs文件所在的目录,如下图:
7、接下来我们可以改一改名称,可以把node_modules改成任意的名称,例如我改成了:“pgsql”
8、接下来在快码打开新建的js文件,并输入如下的代码:
//@导入环境_文件夹>[pgsql]
注意:上述的代码必须存在js文件的最顶部!pgsql就是下载的支持库文件路径。
同时要注意的是,上述代码的pgsql是相对路径,相对于项目文件的路径,例如你放在css文件夹,则路径应该是css/pgsql
9、接下来就可以编写你的支持库代码了,这里直接跟文心一言要了一段原生nodejs执行pg数据库的代码;大家可以复制到js文件试一试:
参考图片:
资料代码:
const pg = require('pg');
// 创建客户端连接
const client = new pg.Client({
host: 'localhost', // 数据库服务器地址
port: 5432, // 数据库端口
user: 'your_username', // 数据库用户名
password: 'your_password', // 数据库密码
database: 'your_database' // 数据库名
});
// 连接到数据库
client.connect();
// 执行查询
client.query('SELECT * FROM your_table', (err, res) => {
if (err) {
console.error('查询出错:', err.stack);
} else {
console.log(res.rows); // 输出查询结果
}
// 关闭连接
client.end();
});
根据上面的代码,我们来做一个改造,首先就是引用模块库:
const pg = require('pg');
然后创建一个连接数据库的方法,把连接代码放在一个定义函数中封装成一个方法:
原始代码:
// 创建客户端连接
const client = new pg.Client({
host: 'localhost', // 数据库服务器地址
port: 5432, // 数据库端口
user: 'your_username', // 数据库用户名
password: 'your_password', // 数据库密码
database: 'your_database' // 数据库名
});
// 连接到数据库
client.connect();
封装后代码:
定义函数 连接PG数据库(链接地址,链接端口,用户名,密码,数据库名) {
// 创建客户端连接
常量 client = 新建对象 pg.Client({
host: 链接地址, // 数据库服务器地址
port: 链接端口, // 数据库端口
user: 用户名, // 数据库用户名
password: 密码, // 数据库密码
database: 数据库名 // 数据库名
});
// 连接到数据库
client.connect();
}
这里值的注意的是,上面的代码部分关键字是快码一键翻译的。
同时注意:常量 client = 新建对象 pg.Client 这段代码返回了数据库对象,我们以后要做查询等功能,所以这个数据库对象肯定不能是局部变量,所以我们把它放在方法外面,并取名为:数据库对象【取名中文主要是方便好记】;并且由于常量是不能更改的,所以我们把申请改为局部变量。
具体代码如下:
//@导入环境_文件夹>[pgsql]
常量 pg = 导入模块("pg");
局部变量 数据库对象;
定义函数 连接PG数据库(链接地址,链接端口,用户名,密码,数据库名) {
// 创建客户端连接
数据库对象 = 新建对象 pg.Client({
host: 链接地址, // 数据库服务器地址
port: 链接端口, // 数据库端口
user: 用户名, // 数据库用户名
password: 密码, // 数据库密码
database: 数据库名 // 数据库名
});
// 连接到数据库
数据库对象.connect();
}
接下来就是操作数据库的代码了,原始代码如下:
// 执行查询
client.query('SELECT * FROM your_table', (err, res) => {
if (err) {
console.error('查询出错:', err.stack);
} else {
console.log(res.rows); // 输出查询结果
}
// 关闭连接
client.end();
});
包装后代码如下:
定义函数 执行数据库查询(SQL语句,查询返回) {
// 执行查询
数据库对象.query(SQL语句, (err, res) => {
如果 (err) {
//console.error("查询出错:", err.stack);
查询返回({
"状态":"错误",
"原因":err
})
} 否则 {
//调试输出(res.rows); // 输出查询结果
查询返回({
"状态":"成功",
"原因":res.rows
})
}
// 关闭连接
数据库对象.end();
});
}
我们来分析一下:
1、client肯定是数据库对象,所以我们把它换成数据库对象变量
2、SQl语句我们换成了方法的参数,方便直接操作参数
3、方法中的第二个参数我们做成回调类型,这样执行SQL的结果直接可以通过第二个参数的箭头符号返回。
最后我们还需要对代码做一个改动,因为上面的查询代码是查询后就关闭数据库,显然这不是我们所需要的;所以我们来增加一个关闭数据库的方法,并删除查询方法中的关闭命令:
定义函数 执行数据库查询(SQL语句,查询返回) {
// 执行查询
数据库对象.query(SQL语句, (err, res) => {
如果 (err) {
//console.error("查询出错:", err.stack);
查询返回({
"状态":"错误",
"原因":err
})
} 否则 {
//调试输出(res.rows); // 输出查询结果
查询返回({
"状态":"成功",
"原因":res.rows
})
}
});
}
定义函数 关闭PG数据库(){
// 关闭连接
数据库对象.end();
}
最终的完整代码就封装好了,代码如下:
//@导入环境_文件夹>[pgsql]
常量 pg = 导入模块("pg");
局部变量 数据库对象;
定义函数 连接PG数据库(链接地址, 链接端口, 用户名, 密码, 数据库名) {
// 创建客户端连接
数据库对象 = 新建对象 pg.Client({
host: 链接地址, // 数据库服务器地址
port: 链接端口, // 数据库端口
user: 用户名, // 数据库用户名
password: 密码, // 数据库密码
database: 数据库名 // 数据库名
});
// 连接到数据库
数据库对象.connect();
}
定义函数 执行数据库查询(SQL语句,查询返回) {
// 执行查询
数据库对象.query(SQL语句, (err, res) => {
如果 (err) {
//console.error("查询出错:", err.stack);
查询返回({
"状态":"错误",
"原因":err
})
} 否则 {
//调试输出(res.rows); // 输出查询结果
查询返回({
"状态":"成功",
"原因":res.rows
})
}
});
}
定义函数 关闭PG数据库(){
// 关闭连接
数据库对象.end();
}
下面是使用案例:
<按钮 点击回调="查询数据()">点击查询数据库</按钮>
<脚本>
//这里执行相关的JS代码
连接PG数据库("localhost", 5432, 'your_username', 'your_password', 'your_database')
定义函数 查询数据(){
执行数据库查询("select * from 表名",(查询数据)=>{
调试输出(查询数据)
})
}
</脚本>
执行到这里,博客也就结束了;同时给大家一个小技巧;封库时可以多多百度查资料,例如百度:nodejs操作postgresql之类的关键字;就可以找到很多的参考英文代码资料~
文章结尾附上文章等工程项目:
值得注意的是:nodejs的环境一般是多平台通用的,也就是你在windows下载了环境和编写代码,在linux和mac一样可以使用~
测试账号
快码FOF编程 Time: 2023-08-18 19:51:35
评论ID
封装教程来了
快码FOF编程 Time: 2023-09-11 18:03:00
评论ID
附上一个同学根据博客所学习的知识所封装的库:参考案例