升级异常机制
This commit is contained in:
parent
480250c04c
commit
2cbe41587e
71
db.go
71
db.go
@ -97,7 +97,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeQueryResult(r, r.MapResults()))
|
return vm.ToValue(makeQueryResult(r, r.MapResults()))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"querya": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"querya": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -111,7 +114,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeQueryResult(r, r.SliceResults()))
|
return vm.ToValue(makeQueryResult(r, r.SliceResults()))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"query1": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"query1": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -125,7 +131,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeQueryResult(r, r.MapOnR1()))
|
return vm.ToValue(makeQueryResult(r, r.MapOnR1()))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"query1a": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"query1a": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -147,7 +156,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
}
|
}
|
||||||
return vm.ToValue(makeQueryResult(r, nil))
|
return vm.ToValue(makeQueryResult(r, nil))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"query11": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"query11": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -165,7 +177,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
}
|
}
|
||||||
return vm.ToValue(makeQueryResult(r, nil))
|
return vm.ToValue(makeQueryResult(r, nil))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"exec": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"exec": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -179,7 +194,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeExecResult(r))
|
return vm.ToValue(makeExecResult(r))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"insert": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"insert": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -193,7 +211,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeExecResult(r))
|
return vm.ToValue(makeExecResult(r))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"replace": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"replace": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -207,7 +228,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeExecResult(r))
|
return vm.ToValue(makeExecResult(r))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"update": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"update": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -221,7 +245,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeExecResult(r))
|
return vm.ToValue(makeExecResult(r))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"delete": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"delete": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -235,7 +262,10 @@ func makeDBObject(conn *db.DB, tx *db.Tx) map[string]any {
|
|||||||
if r.Error == nil {
|
if r.Error == nil {
|
||||||
return vm.ToValue(makeExecResult(r))
|
return vm.ToValue(makeExecResult(r))
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(r.Error))
|
// panic(vm.NewGoError(r.Error))
|
||||||
|
vm.SetData("_lastError", r.Error)
|
||||||
|
gojs.GetLogger(vm).Error(r.Error.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"makeInKeys": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
"makeInKeys": func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
@ -263,7 +293,10 @@ data t
|
|||||||
`, logger); err == nil {
|
`, logger); err == nil {
|
||||||
return nil
|
return nil
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(err))
|
// panic(vm.NewGoError(err))
|
||||||
|
vm.SetData("_lastError", err)
|
||||||
|
gojs.GetLogger(vm).Error(err.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,15 +313,18 @@ data t
|
|||||||
erDesc = u.ReadFileN(tryFile)
|
erDesc = u.ReadFileN(tryFile)
|
||||||
}
|
}
|
||||||
dao.MakeERFile(dbType, erDesc, "", outputFile, logger)
|
dao.MakeERFile(dbType, erDesc, "", outputFile, logger)
|
||||||
return nil
|
return vm.ToValue(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
obj["destroy"] = func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
obj["destroy"] = func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
_, conn, _, _ := initDBArgs(argsIn, vm, 0)
|
_, conn, _, _ := initDBArgs(argsIn, vm, 0)
|
||||||
if err := conn.Destroy(); err == nil {
|
if err := conn.Destroy(); err == nil {
|
||||||
return nil
|
return vm.ToValue(true)
|
||||||
} else {
|
} else {
|
||||||
panic(vm.NewGoError(err))
|
// panic(vm.NewGoError(err))
|
||||||
|
vm.SetData("_lastError", err)
|
||||||
|
gojs.GetLogger(vm).Error(err.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,9 +338,12 @@ data t
|
|||||||
obj["end"] = func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
obj["end"] = func(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
|
||||||
args, _, tx, _ := initDBArgs(argsIn, vm, 1)
|
args, _, tx, _ := initDBArgs(argsIn, vm, 1)
|
||||||
if err := tx.Finish(args.Bool(0)); err != nil {
|
if err := tx.Finish(args.Bool(0)); err != nil {
|
||||||
panic(vm.NewGoError(err))
|
// panic(vm.NewGoError(err))
|
||||||
|
vm.SetData("_lastError", err)
|
||||||
|
gojs.GetLogger(vm).Error(err.Error())
|
||||||
|
return vm.ToValue(false)
|
||||||
}
|
}
|
||||||
return nil
|
return vm.ToValue(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return obj
|
return obj
|
||||||
|
|||||||
10
go.mod
10
go.mod
@ -3,13 +3,13 @@ module apigo.cc/gojs/db
|
|||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
apigo.cc/gojs v0.0.30
|
apigo.cc/gojs v0.0.32
|
||||||
apigo.cc/gojs/console v0.0.4
|
apigo.cc/gojs/console v0.0.4
|
||||||
github.com/go-sql-driver/mysql v1.9.3
|
github.com/go-sql-driver/mysql v1.9.3
|
||||||
github.com/jackc/pgx/v5 v5.7.6
|
github.com/jackc/pgx/v5 v5.7.6
|
||||||
github.com/ssgo/dao v0.1.13
|
github.com/ssgo/dao v0.1.13
|
||||||
github.com/ssgo/db v1.7.13
|
github.com/ssgo/db v1.7.13
|
||||||
github.com/ssgo/log v1.7.9
|
github.com/ssgo/log v1.7.10
|
||||||
github.com/ssgo/u v1.7.23
|
github.com/ssgo/u v1.7.23
|
||||||
modernc.org/sqlite v1.40.1
|
modernc.org/sqlite v1.40.1
|
||||||
)
|
)
|
||||||
@ -35,9 +35,9 @@ require (
|
|||||||
github.com/ssgo/tool v0.4.29 // indirect
|
github.com/ssgo/tool v0.4.29 // indirect
|
||||||
golang.org/x/crypto v0.37.0 // indirect
|
golang.org/x/crypto v0.37.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc // indirect
|
golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc // indirect
|
||||||
golang.org/x/sync v0.18.0 // indirect
|
golang.org/x/sync v0.19.0 // indirect
|
||||||
golang.org/x/sys v0.38.0 // indirect
|
golang.org/x/sys v0.39.0 // indirect
|
||||||
golang.org/x/text v0.31.0 // indirect
|
golang.org/x/text v0.32.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
modernc.org/libc v1.66.10 // indirect
|
modernc.org/libc v1.66.10 // indirect
|
||||||
modernc.org/mathutil v1.7.1 // indirect
|
modernc.org/mathutil v1.7.1 // indirect
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user