А
Size: a a a
А
А
plugins: [
'~/plugins/api-context.server.js' // подключится на только для серверной части
, '~/plugins/api-context.client.js' // подключится на только для клиентской части
],
export default (context, inject) => {
inject('api', async (controller, method, params) => {
...
return await context.$axios['$' + (params ? 'post' : 'get')]('/api/' + controller + '/' + method, params);
export default (context, inject) => {
inject('api', async (controller, method, params) => {
...
let db = await db_pool.getConnection();
let api = require('~/api/' + controller);
...
let result = await api[method](db, params);
...
return result;
serverMiddleware: [
...
{path: '/api', handler: body_parser.json()},
{path: '/api', handler: (req, res, next) => {
const url = require('url');
req.query = url.parse(req.url, true).query;
next();
}},
...
{path: '/api', handler: '~/serverMiddleware/api-server.js'},
...
export default async(req, res, next) => {
...
let db = await db_pool.getConnection();
let url = parseAndCheck(req._parsedUrl.pathname);
url = url.split('/');
let method = url.pop();
let controller = url.join('/');
let api = require('~/api/' + controller);
let result = await api[method](db, req.params);
res.end(JSON.stringify(result));
...
let index = async db => {
let [results, schema] = await db.query(`SELECT * FROM items`);
return {items: results, schema: db.schemaFromQuery(schema)};
};
export {index}
<template>
<div>
<b-button @click.prevent="$fetch">Refresh</b-button>
<b-table :items="items"></b-table>
</div>
</template>
<script>
export default {
data () {
return {
items: []
}
}
, async fetch () {
let res = await this.$api('items', 'index');
this.items = res.items;
}
}
</script>
Д
plugins: [
'~/plugins/api-context.server.js' // подключится на только для серверной части
, '~/plugins/api-context.client.js' // подключится на только для клиентской части
],
export default (context, inject) => {
inject('api', async (controller, method, params) => {
...
return await context.$axios['$' + (params ? 'post' : 'get')]('/api/' + controller + '/' + method, params);
export default (context, inject) => {
inject('api', async (controller, method, params) => {
...
let db = await db_pool.getConnection();
let api = require('~/api/' + controller);
...
let result = await api[method](db, params);
...
return result;
serverMiddleware: [
...
{path: '/api', handler: body_parser.json()},
{path: '/api', handler: (req, res, next) => {
const url = require('url');
req.query = url.parse(req.url, true).query;
next();
}},
...
{path: '/api', handler: '~/serverMiddleware/api-server.js'},
...
export default async(req, res, next) => {
...
let db = await db_pool.getConnection();
let url = parseAndCheck(req._parsedUrl.pathname);
url = url.split('/');
let method = url.pop();
let controller = url.join('/');
let api = require('~/api/' + controller);
let result = await api[method](db, req.params);
res.end(JSON.stringify(result));
...
let index = async db => {
let [results, schema] = await db.query(`SELECT * FROM items`);
return {items: results, schema: db.schemaFromQuery(schema)};
};
export {index}
<template>
<div>
<b-button @click.prevent="$fetch">Refresh</b-button>
<b-table :items="items"></b-table>
</div>
</template>
<script>
export default {
data () {
return {
items: []
}
}
, async fetch () {
let res = await this.$api('items', 'index');
this.items = res.items;
}
}
</script>
Д
Д
Д
А
А
async fetch () {в среднем - 220мс, разброс от 190 до 300
let res = await this.$api('items', 'index');
this.items = res.items;
}
async fetch () {в среднем около 250мс, но тоже разные значения видел от 210 до 450
let p_res1 = this.$api('items', 'index');
let p_res2 = this.$api('items', 'index');
let p_res3 = this.$api('items', 'index');
let p_res4 = this.$api('items', 'index');
let p_res5 = this.$api('items', 'index');
let p_res6 = this.$api('items', 'index');
let p_res7 = this.$api('items', 'index');
let p_res8 = this.$api('items', 'index');
let p_res9 = this.$api('items', 'index');
let p_res10 = this.$api('items', 'index');
let [res1, res2, res3, res4, res5, res6, res7, res8, res9, res10]
= await Promise.all([
p_res1, p_res2, p_res3, p_res4, p_res5, p_res6, p_res7, p_res8, p_res9, p_res10
]);
this.items = res1.items;
}
А
BS
D
async fetch () {в среднем - 220мс, разброс от 190 до 300
let res = await this.$api('items', 'index');
this.items = res.items;
}
async fetch () {в среднем около 250мс, но тоже разные значения видел от 210 до 450
let p_res1 = this.$api('items', 'index');
let p_res2 = this.$api('items', 'index');
let p_res3 = this.$api('items', 'index');
let p_res4 = this.$api('items', 'index');
let p_res5 = this.$api('items', 'index');
let p_res6 = this.$api('items', 'index');
let p_res7 = this.$api('items', 'index');
let p_res8 = this.$api('items', 'index');
let p_res9 = this.$api('items', 'index');
let p_res10 = this.$api('items', 'index');
let [res1, res2, res3, res4, res5, res6, res7, res8, res9, res10]
= await Promise.all([
p_res1, p_res2, p_res3, p_res4, p_res5, p_res6, p_res7, p_res8, p_res9, p_res10
]);
this.items = res1.items;
}
D
А
А
А
D
BS
AB
plugins: [
'~/plugins/api-context.server.js' // подключится на только для серверной части
, '~/plugins/api-context.client.js' // подключится на только для клиентской части
],
export default (context, inject) => {
inject('api', async (controller, method, params) => {
...
return await context.$axios['$' + (params ? 'post' : 'get')]('/api/' + controller + '/' + method, params);
export default (context, inject) => {
inject('api', async (controller, method, params) => {
...
let db = await db_pool.getConnection();
let api = require('~/api/' + controller);
...
let result = await api[method](db, params);
...
return result;
serverMiddleware: [
...
{path: '/api', handler: body_parser.json()},
{path: '/api', handler: (req, res, next) => {
const url = require('url');
req.query = url.parse(req.url, true).query;
next();
}},
...
{path: '/api', handler: '~/serverMiddleware/api-server.js'},
...
export default async(req, res, next) => {
...
let db = await db_pool.getConnection();
let url = parseAndCheck(req._parsedUrl.pathname);
url = url.split('/');
let method = url.pop();
let controller = url.join('/');
let api = require('~/api/' + controller);
let result = await api[method](db, req.params);
res.end(JSON.stringify(result));
...
let index = async db => {
let [results, schema] = await db.query(`SELECT * FROM items`);
return {items: results, schema: db.schemaFromQuery(schema)};
};
export {index}
<template>
<div>
<b-button @click.prevent="$fetch">Refresh</b-button>
<b-table :items="items"></b-table>
</div>
</template>
<script>
export default {
data () {
return {
items: []
}
}
, async fetch () {
let res = await this.$api('items', 'index');
this.items = res.items;
}
}
</script>
Д
D