Size: a a a

Node.js — русскоговорящее сообщество

2020 September 07

SI

Shamil Ibragimov in Node.js — русскоговорящее сообщество
Здравствуйте, люди! Я запускаю несколько express серверов на одном vps, и хотелось бы, чтобы при старте главного сервера, он запускал остальные самостоятельно. Вроде можно запускать остальные сервера через первый основной, подключив их через module.exports. Целесообразно ли так делать, или это заведомо провальная затея?
источник

A

Alexandr in Node.js — русскоговорящее сообщество
Shamil Ibragimov
Здравствуйте, люди! Я запускаю несколько express серверов на одном vps, и хотелось бы, чтобы при старте главного сервера, он запускал остальные самостоятельно. Вроде можно запускать остальные сервера через первый основной, подключив их через module.exports. Целесообразно ли так делать, или это заведомо провальная затея?
Может пора докерезировать приложение и настроить докер компоуз?)
источник

ДМ

Денис Макаров... in Node.js — русскоговорящее сообщество
Alexandr
Может пора докерезировать приложение и настроить докер компоуз?)
да ну не, бред какой-то)
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Dmitry Croft
Чуваки, мне нужно обработать граф. Все вершины графа хранятся в базе данных
Алгоритм, который ответственен за обработку должен иметь доступ хранилищу (по другому просто никак, данных много, выгрузить за раз нельзя)

Обработка графа по любому относится к слою бизнес логики (не к слою данных). При этом получается что слой бизнес логики будет завязан на хранилище

Как это объяснить в контексте существующих паттернов Active Record, Data Mapper и т.п. ? Есть ли способ изолировать алгоритм обработки графа от базы данных (кроме DI и интерфейсов)
зависит от алгоритма
если тебе надо просто обойти граф, это одно, а если надо искать циклы (для примера) - другое
источник

А

Алексей Котов... in Node.js — русскоговорящее сообщество
DUMSTER
А не знаете как это можно исправить?
неа( Проверьте в коллекции courses еще раз
источник

DC

Dmitry Croft in Node.js — русскоговорящее сообщество
Алексей Попов
зависит от алгоритма
если тебе надо просто обойти граф, это одно, а если надо искать циклы (для примера) - другое
Не понял, зависит от алгоритма что? Зависимость об базы данных?

Если там миллионы вершин, то в любом случае я их в оперативную не выгружу и надо будет работать с хранилищем прямо
источник

SI

Shamil Ibragimov in Node.js — русскоговорящее сообщество
Alexandr
Может пора докерезировать приложение и настроить докер компоуз?)
Спасибо) Проверю, не это ли мне нужно)
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Dmitry Croft
Не понял, зависит от алгоритма что? Зависимость об базы данных?

Если там миллионы вершин, то в любом случае я их в оперативную не выгружу и надо будет работать с хранилищем прямо
Я так понял, ты хочешь выбрать более подходящий паттерн для кейса. Так вот мне кажется, что его выбор зависит от того, что именно тебе надо делать с данными
Хотя сама по себе идея натянуть паттерн на задачу вызывает вопросы. Паттерны это велосипеды. А если задача нетривиальная, может не существовать велосипеда с подходящей формой колёс
А почему, кстати, не рассматривается вариант перенести обработку в саму базу? Самое близкое к данным место
источник

DC

Dmitry Croft in Node.js — русскоговорящее сообщество
Алексей Попов
Я так понял, ты хочешь выбрать более подходящий паттерн для кейса. Так вот мне кажется, что его выбор зависит от того, что именно тебе надо делать с данными
Хотя сама по себе идея натянуть паттерн на задачу вызывает вопросы. Паттерны это велосипеды. А если задача нетривиальная, может не существовать велосипеда с подходящей формой колёс
А почему, кстати, не рассматривается вариант перенести обработку в саму базу? Самое близкое к данным место
Рассматривается и такой вариант

Моя проблема заключается в целом в том, что как только нужно работать с большими объемами данных, то бизнес логика переползает в базу данных.

И я ищу какое-то логическое решение это проблемы, чтобы бизнес логика была четко отделена от слоя данных. Но получается что такого не получится сделать не потеряв в производительности?
источник
2020 September 08

Е

Евгений in Node.js — русскоговорящее сообщество
Ребят, кто знает толковые тулзы для профилирования ?
источник

АБ

Андрей Беляев... in Node.js — русскоговорящее сообщество
Я тут начал разбираться с WebAssembly и Emscripten. В качестве эксперимента решил скомпилировать простенькую функцию генератор псевдослучайных чисел:

#include <stdint.h>

uint8_t rand(void) {
 static uint8_t rand = 0;
 rand = rand * 109 + 89;
 return rand;
}

Команда компиляции выглядит так (не пугайтесь символа ^ - он используется в Windows, чтобы разбивать команду на несколько строк):

emcc wasm-module.c -Os -flto ^
-o wasm-module.js ^
-s MODULARIZE ^
-s EXPORTED_FUNCTIONS="['_rand']" ^
-s EXPORTED_RUNTIME_METHODS="['ccall', 'cwrap']"

В итоге на выходе я получил достаточно маленький файл .wasm (156 байт). Таким маленьким он получился после того, как я добавил опцию компилятора -Os. С -O2 к примеру размер файла чо-то огромный выходит.

Кроме того создаётся .js файл, который нужно инклудить внутри своего скрипта под node.js. И всё работает:

"use strict";

const wasmModuleFactory = require("./wasm-module");

(async () => {
 
 const instance = await wasmModuleFactory();
 
 console.log(instance._rand());
 console.log(instance._rand());
 console.log(instance._rand());
 
})().catch(error => console.log(error));

Выводит в консоль:

89
62
191

Вот только что меня с ходу смутило. Почему сгенерированный JS файл, который я инклужу в node.js такого огромного размера? 15 килобайт в минифицированном виде. Что такого он там делает? Я думал, имея скомпилированный WASM бинарник, можно относительно без проблем парой строк кода запустить этот код хоть в node.js, хоть в Google Chrome. А тут оказывается, что ещё какой-то огромный автосгенерированный JS фреймворк нужно инклудить. Как можете увидеть, никаких зависимостей моя программа на Си не требует. Так в чём же дело?
источник

VL

Vladimir Lysenko in Node.js — русскоговорящее сообщество
Я сам только в этом разбираться начал
но я думаю что JS файл большой из-за инструкций обращения к бинарнику
P.S. Я сам Rust пользую
источник

ВК

Виктор Крафтер... in Node.js — русскоговорящее сообщество
Андрей Беляев
Я тут начал разбираться с WebAssembly и Emscripten. В качестве эксперимента решил скомпилировать простенькую функцию генератор псевдослучайных чисел:

#include <stdint.h>

uint8_t rand(void) {
 static uint8_t rand = 0;
 rand = rand * 109 + 89;
 return rand;
}

Команда компиляции выглядит так (не пугайтесь символа ^ - он используется в Windows, чтобы разбивать команду на несколько строк):

emcc wasm-module.c -Os -flto ^
-o wasm-module.js ^
-s MODULARIZE ^
-s EXPORTED_FUNCTIONS="['_rand']" ^
-s EXPORTED_RUNTIME_METHODS="['ccall', 'cwrap']"

В итоге на выходе я получил достаточно маленький файл .wasm (156 байт). Таким маленьким он получился после того, как я добавил опцию компилятора -Os. С -O2 к примеру размер файла чо-то огромный выходит.

Кроме того создаётся .js файл, который нужно инклудить внутри своего скрипта под node.js. И всё работает:

"use strict";

const wasmModuleFactory = require("./wasm-module");

(async () => {
 
 const instance = await wasmModuleFactory();
 
 console.log(instance._rand());
 console.log(instance._rand());
 console.log(instance._rand());
 
})().catch(error => console.log(error));

Выводит в консоль:

89
62
191

Вот только что меня с ходу смутило. Почему сгенерированный JS файл, который я инклужу в node.js такого огромного размера? 15 килобайт в минифицированном виде. Что такого он там делает? Я думал, имея скомпилированный WASM бинарник, можно относительно без проблем парой строк кода запустить этот код хоть в node.js, хоть в Google Chrome. А тут оказывается, что ещё какой-то огромный автосгенерированный JS фреймворк нужно инклудить. Как можете увидеть, никаких зависимостей моя программа на Си не требует. Так в чём же дело?
https://t.me/WebAssembly_ru попробуй тут поинтересуйся
источник

АБ

Андрей Беляев... in Node.js — русскоговорящее сообщество
Спасибо.
источник

N

Nikita in Node.js — русскоговорящее сообщество
Ребят, у меня cors сервер на ноде, через который я проксирую запросы из браузера. Проблема в том. что когда я запрашиваю картинку через get запрос, сервер сам устанавливает заголовок Content-Type  = text/html, видимо по умолчанию. Я стал присваивать Content-Type их полученного ответа. Все ок, но он еще добавляет charset utf-8, для картинки, как я понял, это не нужно. Как мне удалять charset, если запрашивается image?
источник

N

Nikita in Node.js — русскоговорящее сообщество
Серве на express
источник

a

arts in Node.js — русскоговорящее сообщество
Зачем изобретать велосипед, если это можно сделать при помощи nginx?
источник

JD

John Doe in Node.js — русскоговорящее сообщество
Nikita
Ребят, у меня cors сервер на ноде, через который я проксирую запросы из браузера. Проблема в том. что когда я запрашиваю картинку через get запрос, сервер сам устанавливает заголовок Content-Type  = text/html, видимо по умолчанию. Я стал присваивать Content-Type их полученного ответа. Все ок, но он еще добавляет charset utf-8, для картинки, как я понял, это не нужно. Как мне удалять charset, если запрашивается image?
читай документацию по экспресс о работе с заголовками
источник

T

Taras in Node.js — русскоговорящее сообщество
Андрей Беляев
Я тут начал разбираться с WebAssembly и Emscripten. В качестве эксперимента решил скомпилировать простенькую функцию генератор псевдослучайных чисел:

#include <stdint.h>

uint8_t rand(void) {
 static uint8_t rand = 0;
 rand = rand * 109 + 89;
 return rand;
}

Команда компиляции выглядит так (не пугайтесь символа ^ - он используется в Windows, чтобы разбивать команду на несколько строк):

emcc wasm-module.c -Os -flto ^
-o wasm-module.js ^
-s MODULARIZE ^
-s EXPORTED_FUNCTIONS="['_rand']" ^
-s EXPORTED_RUNTIME_METHODS="['ccall', 'cwrap']"

В итоге на выходе я получил достаточно маленький файл .wasm (156 байт). Таким маленьким он получился после того, как я добавил опцию компилятора -Os. С -O2 к примеру размер файла чо-то огромный выходит.

Кроме того создаётся .js файл, который нужно инклудить внутри своего скрипта под node.js. И всё работает:

"use strict";

const wasmModuleFactory = require("./wasm-module");

(async () => {
 
 const instance = await wasmModuleFactory();
 
 console.log(instance._rand());
 console.log(instance._rand());
 console.log(instance._rand());
 
})().catch(error => console.log(error));

Выводит в консоль:

89
62
191

Вот только что меня с ходу смутило. Почему сгенерированный JS файл, который я инклужу в node.js такого огромного размера? 15 килобайт в минифицированном виде. Что такого он там делает? Я думал, имея скомпилированный WASM бинарник, можно относительно без проблем парой строк кода запустить этот код хоть в node.js, хоть в Google Chrome. А тут оказывается, что ещё какой-то огромный автосгенерированный JS фреймворк нужно инклудить. Как можете увидеть, никаких зависимостей моя программа на Си не требует. Так в чём же дело?
скомпиль в режиме без минификаций и увидишь сколько там всего тащится
источник

АБ

Андрей Беляев... in Node.js — русскоговорящее сообщество
Taras
скомпиль в режиме без минификаций и увидишь сколько там всего тащится
Но зачем? Я-то наоборот хочу с минификацией.
источник