Size: a a a

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

2020 September 07

AS

Artem Soroka in Node.js — русскоговорящее сообщество
Я без подколов, интересно, кто с какими сложностями сталкивался
источник

Д

Денис in Node.js — русскоговорящее сообщество
Artem Soroka
А для прода чем не подходит?
смотря какой у вас прод) много условий
источник

Д

Денис in Node.js — русскоговорящее сообщество
Сугубо на мой взгляд:
1. это лишние зависимости
2. необходимо дополнительно изучать апи этой прослойки, как делать выборки, как популейт и все вот это вот
3. на "сложных" выборках будут не оптимальные запросы
4. Вероятность багов и т.д.
источник

Д

Денис in Node.js — русскоговорящее сообщество
Artem Soroka
Я без подколов, интересно, кто с какими сложностями сталкивался
попробуй на простом примере каком-нибудь с количесмтвом сущностей хотя бы 10-15, и со связями, думаю сразу увидишь где какие затыки будут в конкретике
источник

A

Aleksandr in Node.js — русскоговорящее сообщество
Ребят. Почему может не выполнятся этот кусок кода?
const JwtStrategy = require("passport-jwt").Strategy;
ExtractJwt = require('passport-jwt').ExtractJwt;
const User=require("../../mongodb/models/User");
module.exports = function(passport){
   let opts = {};
   opts.jwtFromRequest= ExtractJwt.fromHeader('test'.toLowerCase())
   opts.secretOrKey = 'weeee';
   passport.use(new JwtStrategy(opts,function(jwt_payload,done){
       console.log('WWWW')
       User.getUserById(jwt_payload._id, function(err,user){
           if(err){
               return done(err, false);
           }

           if(user){
               return done(null, user);
           }
           else{
               return done(null, false);
           }
       });
   }));
}      

Роут :
require('./routes/jwt')(passport);
app.use(passport.initialize());
app.use(passport.session())

app.post('/protected', passport.authenticate('jwt', { session: false }), (req, res) => {
   console.log(req.get('Authorization'));
 res.send('Hello')
источник

A

Aleksandr in Node.js — русскоговорящее сообщество
Даже         console.log('WWWW') не отрабатывает
источник

AS

Artem Soroka in Node.js — русскоговорящее сообщество
Денис
попробуй на простом примере каком-нибудь с количесмтвом сущностей хотя бы 10-15, и со связями, думаю сразу увидишь где какие затыки будут в конкретике
У knex/bookshelf те же проблемы будут, с knex пришлось поискать как  правильно работать со вложенными транзакциями, поэтому любая библиотека требует изучения
источник

Д

Денис in Node.js — русскоговорящее сообщество
у кнекса то как такие же проблемы будут, это ж кверибилдер)
источник

Д

Денис in Node.js — русскоговорящее сообщество
Как раз таки все перечисленные проблемы, переходят в зону ответственности разработчика, ну и документация у кнекса не такая уж и большая
источник

ZM

Zloy Meduz in Node.js — русскоговорящее сообщество
Zloy Meduz
Всем доброго дня!
Можете подсказать по одному непонятному мне моменту. На Node пишу бота для телеграм. Беру из process.env значение ключа, которое должно проверяться на сервере:

const API_KEY = process.env.TELEGRAM_API_KEY

далее при помощи axios делаю запрос на сервер, передавая два параметра:

const data = {
       api: API_KEY,
       chatId: ctx.chat.id,
   }

axios.post(`${API_URL}bot/getWeekShedules`, data , {
       headers: {
         'Content-Type': 'application/json',
         'Access-Control-Allow-Origin': '*'
       }
     })

Проверяю что приходит на сервер и тихо офигиваю - chatid приходит, а api отсутствует. При этом, перд отправкой проверяю содержимое переменной data - есть оба ключа и хранят в себе правильные значения. Что за еклм? Кто-нибудь сталкивался с подобным?

При этом, если я api пропишу явно, все работает.
Если кому интересно, разобрался в чем была проблема. Проблема была в том, что pm2 нужно запускать особым образом, иначе он не видит переменные окружения.
sudo -E pm2 start index.js --name=имя
источник

Д

Денис in Node.js — русскоговорящее сообщество
Zloy Meduz
Если кому интересно, разобрался в чем была проблема. Проблема была в том, что pm2 нужно запускать особым образом, иначе он не видит переменные окружения.
sudo -E pm2 start index.js --name=имя
возможно дело в судо?) если ты переменные окружения задавал под своим пользователем
источник

A

Anton in Node.js — русскоговорящее сообщество
Abdulgalimov
ребят, посоветуйте что взять TypeORM или knex) хочу уйти от sequelize, не могу решиться в какую сторону пойти :)
TypeORM хорош для CRUD и Repository pattern. С Knex уже несколько раз коллеги переходили на Sequelize, что-то там пошло не так. А raw sql запросы ты и так писать будешь, сколько бы ты от этого не убегал.
источник

ZM

Zloy Meduz in Node.js — русскоговорящее сообщество
Денис
возможно дело в судо?) если ты переменные окружения задавал под своим пользователем
В нем и есть. Я так и не допер, как в CentOS 7 сделать переменную для всех пользователей. Поэтому выход нашел в запуске pm2 таким образом.
источник

Д

Денис in Node.js — русскоговорящее сообщество
Zloy Meduz
В нем и есть. Я так и не допер, как в CentOS 7 сделать переменную для всех пользователей. Поэтому выход нашел в запуске pm2 таким образом.
а без судо никак? это как бэ не очень хорошо запускать из под судо
источник

ZM

Zloy Meduz in Node.js — русскоговорящее сообщество
Денис
а без судо никак? это как бэ не очень хорошо запускать из под судо
Если вы знаете правильный путь, почему бы просто не написать его?
Потратив час на разборки с тем, что за ерунда у меня происходит, нет никакого желания сидеть, создавать пользователя и разбираться в том какие ему давать права, какие не давать.
источник

VK

Vlad Krokhin in Node.js — русскоговорящее сообщество
Chechen Itza
хелп!
Есть аррэй команд которые нужно запускать асинхронно (то есть сервер работает дальше после запуска), но при этом сами команды должны выполняться после друг друга. То есть:
```
const commands = ['python3 p.py', 'python3 z.py', ...]
exec(commands[0]), дождаться выполнения, затем exec(commands[1]) и т.д.
res
.json('s') <- вот это не должно ждать exec-ов
```
util.promisify
источник

CI

Chechen Itza in Node.js — русскоговорящее сообщество
Vlad Krokhin
util.promisify
ага, уже так делаю, спасибо
источник

CI

Chechen Itza in Node.js — русскоговорящее сообщество
queue = []
async function scheduler(command) {
 if (queue.length === 0) {
   queue.push(command)
   while (queue.length !== 0) {
     const { stdout, stderr } = await exec(queue[0])
     queue.shift()
     console.log('command is done ' + `left: ${queue.length}`)
   }
 } else {
   queue.push(command)
 }
}
Можно как-нибудь улучшить? При запросе с командой. из контроллера вызывается scheduler(command)
источник

Д

Денис in Node.js — русскоговорящее сообщество
Zloy Meduz
Если вы знаете правильный путь, почему бы просто не написать его?
Потратив час на разборки с тем, что за ерунда у меня происходит, нет никакого желания сидеть, создавать пользователя и разбираться в том какие ему давать права, какие не давать.
Ну телепатически сложно понять что там у вас и как запускается)
источник

Д

Денис in Node.js — русскоговорящее сообщество
Chechen Itza
queue = []
async function scheduler(command) {
 if (queue.length === 0) {
   queue.push(command)
   while (queue.length !== 0) {
     const { stdout, stderr } = await exec(queue[0])
     queue.shift()
     console.log('command is done ' + `left: ${queue.length}`)
   }
 } else {
   queue.push(command)
 }
}
Можно как-нибудь улучшить? При запросе с командой. из контроллера вызывается scheduler(command)
shift дорогая операция
источник