Size: a a a

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

2020 May 02

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Iliya Kobaliya
Но снова,у меня будет проверяться ошибка соединения только при подключении ?Дальше только при запросе .Ну в принципе для тестового задания я думаю сойдет)Надо еще фичу такую (попытки переподключения) добавить для ошибок соединения при запросе.А для этого я так и остался с нерешенным вопросом,как отделить ошибки запроса от ошибок подключения ,когда выполняется запрос и вылетает ошибка...
при каждом запросе ты все равно делаешь подключение
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Vladislav Portnoy
Ребят, не нашел сообщества по express, задам тут вопрос.

Я новичок в express и столкнулся с такой вот проблемой:

Имеется router в котором хочу проверять поля на пустые значения, но это так же может пригодиться и в других router, как мне сделать одну функцию для проверки корректных полей?
Вот так все работает: https://tppr.me/b8sSO, https://tppr.me/xm0mY
А хочется что-то вроде этого: https://tppr.me/FQ9IE, https://tppr.me/C6P2Y
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Блин,я не пойму где лучше использовать этот while.В слонике там уже начинается ,функция возвращает функцию и т.д.  )
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Десятки HOF)
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Мне создать функцию(connectDB),которая будет возвращать этот while c попыткой подключиться к бд.Когда и где использовать я хз) Думал создать мидлвару и в индексном файле при старте запусить
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Бесит,когда так мало знаю)
источник

G

Godfather in Node.js — русскоговорящее сообщество
Народ, я вот смотрю примеры и  до конца не могу понять - как все такие правильно писать асинхронные функции?

Вот есть
router.get(‘/courses’, async (req, res) => {
 const courses = await Course.fetch()
 res.render(‘courses’, { courses })
})

class Course {
static async fetch() {
  return new Promise((resolve, reject) => {
    fs.readFile(PATH, 'utf-8', (err, content) => {
      if (err) reject(err)
      resolve(JSON.parse(content))
    })
  })
}
}
источник

G

Godfather in Node.js — русскоговорящее сообщество
Почему где-то асинк, где-то через return new Promise, каждый как может извращается. Есть какие-то нормальные стайлгайды, как писать асинхронку, чтобы не по-нубски было, чтобы ошибки нормально обрабатывать можно было? Не пойму никак
источник

DB

Dmitriy Blinov in Node.js — русскоговорящее сообщество
Это одно и то же
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Godfather
Почему где-то асинк, где-то через return new Promise, каждый как может извращается. Есть какие-то нормальные стайлгайды, как писать асинхронку, чтобы не по-нубски было, чтобы ошибки нормально обрабатывать можно было? Не пойму никак
нету
источник

VP

Vladislav Portnoy in Node.js — русскоговорящее сообщество
Хм, ну не совсем то что я имел ввиду, но спасибо. Просто хочется избежать дублирования кода
источник

G

Godfather in Node.js — русскоговорящее сообщество
То есть как угодно делать? Например async/await вариант функции fetch будет выглядеть вот так?

async fetch () {
  try {
     const courses = await какая-нибудь функция, которая достает данные
     return courses
  } catch (e) {
     throw e
  }
}
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Godfather
То есть как угодно делать? Например async/await вариант функции fetch будет выглядеть вот так?

async fetch () {
  try {
     const courses = await какая-нибудь функция, которая достает данные
     return courses
  } catch (e) {
     throw e
  }
}
да
источник

DB

Dmitriy Blinov in Node.js — русскоговорящее сообщество
async fetch () {
  try {
     const courses = await какая-нибудь функция, которая достает данные
     return res.render(‘courses’, { courses })
  } catch (e) {
     throw e
  }
}
источник

G

Godfather in Node.js — русскоговорящее сообщество
Понял, спасибо!
источник

VP

Vladislav Portnoy in Node.js — русскоговорящее сообщество
Vladislav Portnoy
Ребят, не нашел сообщества по express, задам тут вопрос.

Я новичок в express и столкнулся с такой вот проблемой:

Имеется router в котором хочу проверять поля на пустые значения, но это так же может пригодиться и в других router, как мне сделать одну функцию для проверки корректных полей?
Вот так все работает: https://tppr.me/b8sSO, https://tppr.me/xm0mY
А хочется что-то вроде этого: https://tppr.me/FQ9IE, https://tppr.me/C6P2Y
Сделал вот так https://tppr.me/pwWZL, но все ровно эти check мозолят глаза...
источник

D

DShA in Node.js — русскоговорящее сообщество
Всем доброго времени суток! Пытаюсь понять один проект https://cezerin.ru/ React и Node.js  там есть docker реализация, yml прикреплю ниже. Проблема: на локальной машине всё работало, но когда установил на VPS вылезла такая проблема... не подгружаются товары по api, так он ищет их попрежнему на http://localhost:3001,  должен на http://83.166.241.132:3001 (в конфигах эта переменная задан так: ajaxBaseUrl: process.env.AJAX_BASE_URL || 'http://localhost:3001/ajax',).
Переменные окружения в самом контейнере есть и правильные:
# printenv
STORE_PORT=3000
LANGUAGE=ru
NGINX_CODENAME=stretch
NODE_VERSION=8.17.0
HOSTNAME=97cdcb3731dc
YARN_VERSION=1.21.1
HOME=/root
TERM=xterm
AJAX_BASE_URL=http://83.166.243.133:3001/ajax
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CEZERIN_VERSION=master
API_BASE_URL=http://83.166.243.133:3001/api/v1
PWD=/var/www/cezerin

причина : вебпак когда формирует файл ——->/var/www/cezerin/theme/assets/js/theme-f0d71229dea9ccfb4c53.js
генерирует туда вот такой  код: function(e,t,n){
   "use strict";(function(t){
          e.exports={language:t.env.LANGUAGE||"en",ajaxBaseUrl:t.env.AJAX_BASE_URL||"http://localhost:3001/ajax"}
       })
       .call(this,n(496))}

этот файл работает на стороне клиента, а обращается он к переменным окружения как на сервере, не находит и берёт дефолтное значение локалхост. Вопрос направьте как правильно переписать и где чтобы вебпак брал уже само значение из окружения env, а не кусок кода.
2й вопрос может не по теме, но я свои конфиги монтирую в контейнер прописывая в yml строки volumes:

vamshop-storefront:
image: vamshop/vamshop-storefront
environment:
- LANGUAGE=ru
- AJAX_BASE_URL=http://83.166.241.132:3001/ajax
- API_BASE_URL=http://83.166.241.132:3001/api/v1
volumes:
- ./content-scss:/var/www/vamshop-storefront/theme/assets/scss
- ./content-sass:/var/www/vamshop-storefront/theme/assets/sass
- ./content-config-store:/var/www/vamshop-storefront/config
- ./content-src:/var/www/vamshop-storefront/src
# - ./content-js:/var/www/vamshop-storefront/theme/assets/js
ports:
- 3000:80
depends_on:
- vamshop-api
restart: always

но вебпак не берёт эти конфиги, а берет из образа на гитхаб
как прописать и где чтобы он брал именно мои которые я монтирую в сам контейнер. В контейнер заходил мои конфиги там есть.  Но в файле var/www/cezerin/theme/assets/js/theme-f0d71229dea9ccfb4c53.js всёравно локал хост хотя у себя в конфигах я заменил его на свой ip/
Спасибо.
источник

D

DShA in Node.js — русскоговорящее сообщество
откуда он на стороне клиента запрашивает значение t.env.AJAX_BASE_URL ? почему за "t" ?
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
Короче ребят) Создал  я мидлвару для подключения БД,вызову ее в индексном файле (let connectionRetryLimit  вынесу в конфиг).
источник

IK

Iliya Kobaliya in Node.js — русскоговорящее сообщество
В вызове я передам instance pool в аргументах.
источник