
Кирилл
31.07.2018
09:03:49
интересно а есть чатик с проектными работами не привязаными к стеку

Seroj
31.07.2018
09:06:25
Здравствуйте, я Node Js разработчик и хочу найти удаленная работа, у меня 9 месяцев опыт работы.
Вот мой CV

Alexander
31.07.2018
09:06:52

Seroj
31.07.2018
09:07:12
ok

Google

Alexander
31.07.2018
09:07:18
Работу ищут тут @nodejs_jobs, то же что и в описании группы

Seroj
31.07.2018
09:07:36
Спосибо

Alexander
31.07.2018
09:08:00
СпАсибо

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:33:59
Наррод, подскажите реализуемо ли в ноде (8.11) поведение как в прости хоспаде в ПХП, ну типа чтобы состояние сервера (или модуля) не шарилось между запросами
ну типа чтоб каждый запрос как в отдельном потоке был

Mikhail
31.07.2018
09:35:11

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:35:49
ну я хз как там сделано, но глобальные переменные там точно между сессиями не шарятся

Mikhail
31.07.2018
09:36:55

Alexander
31.07.2018
09:37:00

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:37:20
ну так вроде как логично
типа отработал и умер

Alexander
31.07.2018
09:37:40

Google

Andrey
31.07.2018
09:37:40

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:38:27
не, вопрос не совсем про сессии
вопрос в том как бы мне так глобально хранить некоторые данные о запросе на время его обработки

Кирилл
31.07.2018
09:39:07
ух бля какой ник

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:39:34
я понимаю, что можно на прямую в функцию передавать, но по другому ни как?

Andrey
31.07.2018
09:40:05

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:41:08
то есть, и тогда между запросами чистить глобальные переменные?

Mikhail
31.07.2018
09:43:13

Andrey
31.07.2018
09:43:35
ну а какая у тебя там глобальная останется если скрипт отработал и умер?..

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:43:50
давай я тебе на псевдокоде расскажу, а то там много скидывать

Mikhail
31.07.2018
09:44:16

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:44:23
окэ)

Andrey
31.07.2018
09:44:52
Я не скажу что силен в ноде, но малехо в теме, можно на пыхе))

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:45:21
app.get('*', (req, res) => require('./dist/ssr.js').default(req, res));
вот есть такая штука

Andrey
31.07.2018
09:45:38
просто по сути синхронный код ничем не будет отличаться от той же пыхи

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:45:56
внутри ssr.js всякая магия с запросами к серверу с АПИ
запросы асинхронные, но это сейчас не важно

Mikhail
31.07.2018
09:46:32

Andrey
31.07.2018
09:47:02
не спорю

Google

Sheldhur
31.07.2018
09:47:08
Вообще лучше на ней ничего не писать

Alexander
31.07.2018
09:47:23

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:47:47
для запросов к серверу нужно использовать разные куки, полученные от клиента, а потом еще в зависимости от ответа АПИ-сервера отдать клиенту правильные заголовки

Sheldhur
31.07.2018
09:48:03
Да. Js это формочки в браузере красить

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:48:17

Alexander
31.07.2018
09:48:30

Anton
31.07.2018
09:48:39

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:48:42
но если надо SSR, то тока нода остается
ну так вот в моей проблеме возникает дилема:
если я храню данные от клиента в глобальной переменной, то они будут перезаписаны данными другого клиента, если запрос 1го еще не выполнился
или нет?

Alexander
31.07.2018
09:51:20

Alexander
31.07.2018
09:51:34
и читай также

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:52:25
тогда мне вместо request придется по функциям таскать client.id , шило на мыло

Alexander
31.07.2018
09:52:39

Andrey
31.07.2018
09:52:52
ну вот я нашел применение ноде в парсерах, оч нра. Не сочтите за спам вот для себя запилил https://t.me/SerialOnlineChannel нода + sqlite на ноуте вертится

Alexander
31.07.2018
09:53:31

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:53:37

Gats
31.07.2018
09:53:49
подскажите, при использовании mongoose где правильно описать schema, в плане директорий?

Alexander
31.07.2018
09:53:52

Google

bofh
31.07.2018
09:54:05

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:54:19
действительно

Andrey
31.07.2018
09:54:24
не работают, была задумка, потом просто забросил

Alexander
31.07.2018
09:54:26

Admin
ERROR: S client not available

Mikhail
31.07.2018
09:55:12

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:55:12
вот если бы в отдельном треде, то оно бы из коробки было, видимо придется ждать ноду 10

Alexander
31.07.2018
09:55:32
мда, вот это проблемы
живем же как-то без тредов

Andrey
31.07.2018
09:56:18
А чо б и не очищать перед началом цикла переменные?

Mikhail
31.07.2018
09:56:41

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:57:39

Andrey
31.07.2018
09:57:42
асинхронно же ты можеш запустить стопицот потоков и там переменные всегда будут свои

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:58:23
чет у нас в корне не понимание друг друга

?
31.07.2018
09:58:23

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
09:58:29
я наверное не так объяснил

Mikhail
31.07.2018
09:59:20
php, go много где так делают
Go? Пруфы в студию
PHP - это единственный популярный и используемый язык, который работает по всратой концепции отработал-умер

Google

Andrey
31.07.2018
10:01:00
Я понял что результат обработки у тебя пишется всегда в одну перменную, ну.. а типа промисы ? аообще не понимаю как у тебя так, просто что то неправильно построил
т.е, у тебя есть результат, ты его забираеш и потом даеш добро на перезаписывание


⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
10:03:02
вот смотри
global._req_cookies_ = req.cookies;
global._node_request_(global.ARBITR_SERVER, 'get', {}, false, true).then(data => {
global.__bench('AN ARBITR_SERVER');
if (typeof data.app_docker !== undefined) {
global.APP_DOCKER_SERVER = data.app_docker;
}
global.APP_SERVER = data.app;
global.WEB_SERVER = data.web;
global.SOCIAL_SERVER = data.social;
// Model the initial state
// const store = configureStore({}, {url: req.url, pathname: req.path, query: req.query}).then(store => {
const store = configureStore({}, req).then(store => {
global.__bench('A configureStore');
const content = renderToString(
<Provider store={store}>
<StaticRouter context={{}} location={req.url}>
<App />
</StaticRouter>
</Provider>
);
const helmet = Helmet.renderStatic();
const preloadedState = store.getState();
const template = templateFn(content, Object.assign(preloadedState, {isClient: true}), helmet);
global.__bench('Make template');
setTimeout(function () {
console.log(global._set_cookie_);
set_cookie_names.forEach(name => {
if (global._set_cookie_[name]) {
res.append('Set-Cookie', global._set_cookie_[name]);
}
})
// If the domain matches, allow iframes from that domain
// if (XFRAME_WHITELIST.indexOf(req.header('Referer')) !== -1) {
// res.header('X-FRAME-OPTIONS', 'SAMEORIGIN');
// }
res.send(template);


Mikhail
31.07.2018
10:03:30
вот смотри
global._req_cookies_ = req.cookies;
global._node_request_(global.ARBITR_SERVER, 'get', {}, false, true).then(data => {
global.__bench('AN ARBITR_SERVER');
if (typeof data.app_docker !== undefined) {
global.APP_DOCKER_SERVER = data.app_docker;
}
global.APP_SERVER = data.app;
global.WEB_SERVER = data.web;
global.SOCIAL_SERVER = data.social;
// Model the initial state
// const store = configureStore({}, {url: req.url, pathname: req.path, query: req.query}).then(store => {
const store = configureStore({}, req).then(store => {
global.__bench('A configureStore');
const content = renderToString(
<Provider store={store}>
<StaticRouter context={{}} location={req.url}>
<App />
</StaticRouter>
</Provider>
);
const helmet = Helmet.renderStatic();
const preloadedState = store.getState();
const template = templateFn(content, Object.assign(preloadedState, {isClient: true}), helmet);
global.__bench('Make template');
setTimeout(function () {
console.log(global._set_cookie_);
set_cookie_names.forEach(name => {
if (global._set_cookie_[name]) {
res.append('Set-Cookie', global._set_cookie_[name]);
}
})
// If the domain matches, allow iframes from that domain
// if (XFRAME_WHITELIST.indexOf(req.header('Referer')) !== -1) {
// res.header('X-FRAME-OPTIONS', 'SAMEORIGIN');
// }
res.send(template);
Я умываю руки


⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
10:03:30
это функция, которая обрабатывает запросы\

Gats
31.07.2018
10:04:03
schema.js?
не, mongoose хочу описать типа по госту)


Alexander
31.07.2018
10:04:39
вот смотри
global._req_cookies_ = req.cookies;
global._node_request_(global.ARBITR_SERVER, 'get', {}, false, true).then(data => {
global.__bench('AN ARBITR_SERVER');
if (typeof data.app_docker !== undefined) {
global.APP_DOCKER_SERVER = data.app_docker;
}
global.APP_SERVER = data.app;
global.WEB_SERVER = data.web;
global.SOCIAL_SERVER = data.social;
// Model the initial state
// const store = configureStore({}, {url: req.url, pathname: req.path, query: req.query}).then(store => {
const store = configureStore({}, req).then(store => {
global.__bench('A configureStore');
const content = renderToString(
<Provider store={store}>
<StaticRouter context={{}} location={req.url}>
<App />
</StaticRouter>
</Provider>
);
const helmet = Helmet.renderStatic();
const preloadedState = store.getState();
const template = templateFn(content, Object.assign(preloadedState, {isClient: true}), helmet);
global.__bench('Make template');
setTimeout(function () {
console.log(global._set_cookie_);
set_cookie_names.forEach(name => {
if (global._set_cookie_[name]) {
res.append('Set-Cookie', global._set_cookie_[name]);
}
})
// If the domain matches, allow iframes from that domain
// if (XFRAME_WHITELIST.indexOf(req.header('Referer')) !== -1) {
// res.header('X-FRAME-OPTIONS', 'SAMEORIGIN');
// }
res.send(template);
Ммм, _это _так _ахуенно


⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
10:05:04
ну да, не лучшее решение, я в поисках его

Alexander
31.07.2018
10:05:20

Кирилл
31.07.2018
10:05:31
Хороший у тебя все таки ник, мне понравился)

Alexander
31.07.2018
10:05:50
camelCase для этого и придумали

⢎⡁⡮⢵⢸⣸⣸ ⡮⢵?
31.07.2018
10:06:23
блин, ну ты про это что ле

Gats
31.07.2018
10:06:25

Alexander
31.07.2018
10:06:51

Gats
31.07.2018
10:07:16
каждая таблица - отдельный файл в models

Azzy
31.07.2018
10:10:50