在对象存在之前创建方法链
Create method chain before object exists
假设我正在对 SQL 数据库使用 knex 到 运行 查询。我链接了一些方法来构建查询。
例如:
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex.select("*")
.from("books")
.where("author", "=", "José Saramago")
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
knex.destroy();
})
现在,我的问题是:
有没有办法在创建knex
对象之前存储方法链,并在创建后调用它?
像这样:
const methodChain = <<<
.select("*"),
.from("books"),
.where("author", "=", "José Saramago")
>>>
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex
.methodChain()
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
当然可以。
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
然后
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
您可以创建一个接受链中初始参数的函数:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
假设我正在对 SQL 数据库使用 knex 到 运行 查询。我链接了一些方法来构建查询。
例如:
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex.select("*")
.from("books")
.where("author", "=", "José Saramago")
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
knex.destroy();
})
现在,我的问题是:
有没有办法在创建knex
对象之前存储方法链,并在创建后调用它?
像这样:
const methodChain = <<<
.select("*"),
.from("books"),
.where("author", "=", "José Saramago")
>>>
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex
.methodChain()
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
当然可以。
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
然后
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
您可以创建一个接受链中初始参数的函数:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})