const {promisify} = require('util');
const query = promisify(connection.query.bind(connection));
async function getSomethingFromDB() { // не знаю какое имя у Вас в оригинале
const result = await query(" SELECT * FROM `tb_1` WHERE `id`=? ", [id]);
const array = [];
for (var i in result) {
// ...
const result_2 = await query(" SELECT * FROM `tb_2` WHERE `id`=? ", [id]);
// ...
}
}
const mysql = require('some-mysql-library');
const app = express();
// ...
function getUserFromMysqlMiddleware(req, res, next) {
mysql.query('SELECT * FROM `users` WHERE `id`=? LIMIT 1', [req.query.userid]).then(([user]) => {
if(!user) {
const err = new Error('Access denied');
err.status = 403;
return next(err);
}
req.user = user;
next();
}).catch(next);
}
app.post('/some/route', getUserFromMysqlMiddleware, (req, res) => {
// Ваш код с гарантированным наличием req.user
});
app.put('/some/route', getUserFromMysqlMiddleware, (req, res) => {
// Ваш код с гарантированным наличием req.user
});
я не до конца понимаю, для чего он нужен в принципеон задает "рабочую директорию процесса", все относительные пути используемые в запускаемой программе будут вычислены относительно этой директории
Готовлюсь к собесу в яндексРано Вам в Яндекс... задачка то уровня школьных олимпиад...
Постарайтесь, чтобы решение работало за время k ⋅ log(k) ⋅ nА это точно задачка для Яндекса? Она решается за линейное время O(k ⋅ n) если чуть-чуть вникнуть в условия, а логарифмическое решение годно лишь для людей с ЕГЭ головного мозга, там как раз любят решения в стиле "слить все в 1 массив и отсортировать", при использовании qsort/merge-sort как раз будет O(k ⋅ log(k) ⋅ n)
connection.query('SELECT * FROM menu', (err, result) => {
if(err) {
console.error(err);
return;
}
const index = result.reduce((acc, row) => ({...acc, [row.id]: row}), {});
const menu = [];
for(const row of result) {
if(row.parent_id === 0) {
menu.push(row);
continue;
}
const parent = index[row.parent_id];
if(!parent) {
console.warn(`Undefined parent with id ${row.parent_id}`);
continue;
}
if(!parent.children) {
parent.children = [];
}
parent.children.push(row);
}
console.log(menu);
});
file_load.onsubmit = function(){ var file = this.elements.myfile.files[0]; var xhr = new XMLHttpRequest(); xhr.open("POST", "upload", true); xhr.send(file); return false; }
const server = require('http').createServer();
const fs = require('fs');
const nodeStatic = require('node-static');
const file = new nodeStatic.Server('.', {
cache: 0
});
server.listen(3000, () => console.log("сервер запущен"));
server.on('request', (req, res) => {
if (req.url == '/upload') {
req.pipe(
fs.createWriteStream('file2.jpg')
).on('finish', () => res.end('ok'));
return;
}
file.serve(req, res);
});
Vue.js, React или Angular?что знаете, то и берите...
Далее все это запихну в Express.express это про создание тормознутых веб-серверов, у электрона есть более эфективное апи для этого:
'ascii' - For 7-bit ASCII data only. This encoding is fast and will strip the high bit if set.
PATH="$PWD/node_modules/.bin:$PATH" postcss --params
{
"scripts": {
"postcss": "postcss --params"
}
}
npm run postcss
npx postcss --params
var express = require("express");
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
app.get('/bootstrap.min.css', (function() {
// на другой машине bootstrap может установится в другое место
// разрезолвим его путь средствами ноды и сохраним в замыкании
var cssFile = require.resolve('bootstrap/dist/css/bootstrap.min.css');
return function(req, res) {
res.sendFile(cssFile);
};
})());
app.get('/', function(request, response){
response.sendFile(__dirname + "/index.html");
});
server.listen(3000);
<link rel="stylesheet" href="/bootstrap.min.css">