如何从 objection.js 中获取所有行
How to fetch all rows from objection.js
我正在使用 Knex.js & Objection.js,我想显示国家/地区下拉列表,所以我需要所有行,但它只返回 10 行。如何覆盖分页功能?
在urllocalhost:3031/countires?pages='All'里面有没有我可以设置的参数,应该有一些简单的方法。我正在使用 "knex": "^0.21.1", "objection": "^1.6.11" 版本。
default.js包含
"paginate": {
"default": 10,
"max": 2000
},
暂时我只是在 src\serivices\countries\countires.services.js
中做了以下更改
module.exports = function (app) {
const options = {
Model: createModel(app),
//paginate: app.get("paginate"),
paginate: {
default: 0,
max: 0,
},
};
// Initialize our service with any options it requires
app.use("/countries", new Countries(options, app));
如果我能看到您对这条路线的异议查询,那将会很有帮助。但是您很可能会像这样在分页中设置一个值:
paginate = {
isPage: false,
default:10,
max:2000
}
然后在您的查询中,您可以使用 if 语句来检查 isPage 值是真还是假。并且仅当您将该值设置为 true 时才限制您的响应。
像这样:
const countries = paginate.isPage
? await Country.query()
.limit(paginate.default)
: await Country.query()
如果您需要更多帮助,请回复我,我会尽我所能回复!
我发现解决方案需要在获取挂钩之前添加应用程序或服务,在我的案例中我添加到 /src/app。hooks.js
module.exports = {
before: {
find: [
(hook) => {
if (hook.params.query && hook.params.query.$paginate) {
hook.params.paginate =
hook.params.query.$paginate === "false" ||
hook.params.query.$paginate === false;
delete hook.params.query.$paginate;
}
return hook;
},
],
}
}
如何从 Postman 调用它:
GET http://localhost:3031/institutes?$paginate=false // all rows
GET http://localhost:3031/institutes //Using pagination
Nuxt.js
async mounted() {
this.countries = await this.$api.countries.find({ $paginate: false });
},
vue.js
this.countries = await this.$axios.get('http://localhost:3031/countries?$paginate=false');
我正在使用 Knex.js & Objection.js,我想显示国家/地区下拉列表,所以我需要所有行,但它只返回 10 行。如何覆盖分页功能?
在urllocalhost:3031/countires?pages='All'里面有没有我可以设置的参数,应该有一些简单的方法。我正在使用 "knex": "^0.21.1", "objection": "^1.6.11" 版本。 default.js包含
"paginate": {
"default": 10,
"max": 2000
},
暂时我只是在 src\serivices\countries\countires.services.js
中做了以下更改module.exports = function (app) {
const options = {
Model: createModel(app),
//paginate: app.get("paginate"),
paginate: {
default: 0,
max: 0,
},
};
// Initialize our service with any options it requires
app.use("/countries", new Countries(options, app));
如果我能看到您对这条路线的异议查询,那将会很有帮助。但是您很可能会像这样在分页中设置一个值:
paginate = {
isPage: false,
default:10,
max:2000
}
然后在您的查询中,您可以使用 if 语句来检查 isPage 值是真还是假。并且仅当您将该值设置为 true 时才限制您的响应。 像这样:
const countries = paginate.isPage
? await Country.query()
.limit(paginate.default)
: await Country.query()
如果您需要更多帮助,请回复我,我会尽我所能回复!
我发现解决方案需要在获取挂钩之前添加应用程序或服务,在我的案例中我添加到 /src/app。hooks.js
module.exports = {
before: {
find: [
(hook) => {
if (hook.params.query && hook.params.query.$paginate) {
hook.params.paginate =
hook.params.query.$paginate === "false" ||
hook.params.query.$paginate === false;
delete hook.params.query.$paginate;
}
return hook;
},
],
}
}
如何从 Postman 调用它:
GET http://localhost:3031/institutes?$paginate=false // all rows
GET http://localhost:3031/institutes //Using pagination
Nuxt.js
async mounted() {
this.countries = await this.$api.countries.find({ $paginate: false });
},
vue.js
this.countries = await this.$axios.get('http://localhost:3031/countries?$paginate=false');