y
Например, аудио API вырезано из доков, но оно есть. Так же у статистики групп есть методы, которые в доках не фигурируют.
Size: a a a
y
UA
АК
KG
I
I
К
К
M
К
К
К
DN
написать скрипт который при инициализации приложения будет
проверять есть ли нужные таблицы для работы в базе SQLlite и если нет, то
будет создавать таблицы и добавлять в них данные с файлов
const sqlite3 = require('sqlite3').verbose();
const users = require("./initial-data/users");
const usersStatistic = require("./initial-data/users_statistic");
const db_source = "./server/database/db.sqlite";
function sql_insert (array, tableName) {
let props = '';
let values ='';
for (let i = 0; i < Object.keys(array[0]).length; i++) {
if(i === Object.keys(array[0]).length - 1) {
values += `?`;
props += `${Object.keys(array[0])[i]}`
}else {
values +=`?,`;
props += `${Object.keys(array[0])[i]}, `;
}
}
return`INSERT into ${tableName} (${props}) VALUES (${values});`;
}
/////
"db_create": "node ./server/database.js",
К
DN
CREATE TABLE IF NOT EXISTS
const express = require("express");
const app = express();
const db_source = "./server/database/db.sqlite";
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database(db_source);
const bodyParser = require("body-parser");
const HTTP_PORT = 8000;
const passport = require('./passport');
const cors = require('cors');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cors());
app.get('/api/users', (req, res, next) => {
const sql = `select
users.id,
users.first_name,
users.last_name,
users.email,
users.gender,
users.ip_address,
sum(users_statistic.clicks) as total_clicks,
sum(users_statistic.page_views) as total_views
from users left join users_statistic on users.id = users_statistic.user_id group by id
;`;
if( req.query.limit ){
return doQueryUsers(req, res, next);
}
db.all(sql, (err, rows)=>{
if (err) {
res.status(400).json({"error":err.message});
console.log(rows)
}
res.json({"message": "success", "users" : rows,})
});
});
const doQueryUsers = (req, res, next) => {
let limit = req.query.limit;
let offset = req.query.offset;
const sql = `select
users.id,
users.first_name,
users.last_name,
users.email,
users.gender,
users.ip_address,
sum(users_statistic.clicks) as total_clicks,
sum(users_statistic.page_views) as total_views
from users left join users_statistic on users.id = users_statistic.user_id group by id
LIMIT ${limit} OFFSET ${offset}
;`;
db.all(sql, (err, users) => {
if(err) {
console.log(err)
}
db.get(`select count(*) as length from users`, (err, data)=>{
if (err) {
res.status(400).json({"error":err.message});
}else {
res.json({
"message": "success",
"users" : users,
"length": data.length
})
}
});
});
};
К
К
D