v0.9.7
版本说明
语法特性
- 基本类型新增
int
和float
,移除number
类型。
// 声明int
let a: int = 12
let b = int(21.9)
// 声明float
let e = 2.1
let f = 9f
let g = float("12")
// int和float混合数学计算的结果是float
let h = 12 * 2.1
说明
number
类型被float
替代,因为它们底层都是float64,所以精度相同;int
和float
在进行混合数学计算时,int
会自动转为float
。
- 线程同步锁
sync
由原来的函数调用时加锁修改为函数声明时加锁。
// 函数a声明为线程同步函数
sync function a(){
// 函数体
}
// 多线程执行时,函数a将是线程安全的
async a()
async a()
async a()
- 函数新增Rest参数;
function test(a, b, ...args) {
console.log(args)
}
test(1, 2, 3, 4); // 输出:[3,4]
test(5, 10); // 输出:[]
新增模块
- 新增
mysql
模块,该模块实现了mysql的复制协议,可以完整解析binlog
实现数据实时同步、数据复制等功能。
import {replication} from "mysql"
const config = {
serverId: 32312,
host: "localhost",
port: 3306,
user: "root",
password: "123456",
}
let syncer = replication.open(config)
const log = {
name: "binlog.000021", //要解析的binlog文件名
pos: 0, //开始解析的binlog文件的具体位置
rowsType: "object",//数据类型:object、json
}
const streamer = syncer.startSync(log)
//循环逐个解析binglog文件中的每一个事件
while (true) {
const e = streamer.getEvent()
//打印事件
console.log(e)
}
sql
模块中新增ClickHous
数据库支持。sql
模块中的query
函数新增第三个可选参数Class
,可以指定查询结果为某个类的对象。
import sql from "sql";
class User {
id
name
}
class Student extends User {
number
phone
birshday
}
// 如果需要指定类型,可以通过赋初始值的方式指定类型,此时vino会尝试将数据库查出来的数据按类型进行转换。如:
/*
class Student extends User {
number = ""
phone = ""
birshday = new Date()
}
*/
let config = {
url: "postgres://postgres:123456@127.0.0.1:5432/postgres?sslmode=disable",
maxOpenConns: 40,
maxIdleConns: 10,
connMaxIdleTime: 12,
connMaxLifetime: 12,
bigintToType: 'string'
};
let db = sql.open("postgres", config);
//执行查询
let users = db.query(`select * from user`, [], User);
console.log(users);
sql
模块中新增queryJson
函数,可以将sql查询结果转换为json字符串。
import sql from "sql";
let config = {
url: "postgres://postgres:123456@127.0.0.1:5432/postgres?sslmode=disable",
maxOpenConns: 40,
maxIdleConns: 10,
connMaxIdleTime: 12,
connMaxLifetime: 12,
bigintToType: 'string'
};
let db = sql.open("postgres", config);
//执行查询
let json = db.queryJson(`select * from user`);
console.log(json);
其他
- 移除字符串方法
parseNumber
,字符串转数字请使用int
和float
内置函数; - 移除了
core
包中的numbers
对象; - 修改了文档中的一些错误;
- 移除了
map
中的中括号获取值的方式,请使用get
方法获取;
下载
文件名 | 类型 | 系统 | 架构 | 文件大小 |
---|---|---|---|---|
vino-v0.9.7_rc-windows-x86_64.msi | 安装程序 | x86_64 | 43MB | |
vino-v0.9.7_rc-windows-x86_64.zip | 压缩包 | x86_64 | 42MB | |
vino-v0.9.7_rc-darwin-arm64.pkg | 安装程序 | ARM64 | 44MB | |
vino-v0.9.7_rc-darwin-x86_64.pkg | 安装程序 | x86_64 | 47MB | |
vino-v0.9.7_rc-darwin-arm64.tar.gz | 压缩包 | ARM64 | 44MB | |
vino-v0.9.7_rc-darwin-x86_64.tar.gz | 压缩包 | x86_64 | 47MB | |
vino-v0.9.7_rc-linux-arm64.tar.gz | 压缩包 | ARM64 | 39MB | |
vino-v0.9.7_rc-linux-x86_64.tar.gz | 压缩包 | x86_64 | 42MB |