
Erving
12.12.2017
09:19:31
.
как вы встраиваете код в сообщения?

Nikita
12.12.2017
09:21:08

Eliajah
12.12.2017
09:25:01

Google

Erving
12.12.2017
09:25:22

Michael ?
12.12.2017
09:26:30

equicolor
12.12.2017
09:36:21

Erving
12.12.2017
09:41:11
сокеты простые, вот воркеры - интересная тема, не особо обсуждающаяся, но полезная. хотя один хрен на собесах меня валят сортировками)

Anton
12.12.2017
10:06:18

Илья
12.12.2017
10:09:43
Как вернуть переменную из NodeJS в JS? У меня модуль верификации он отправляет токен на NodeJS потом этот токен меняется на новый токен и этот новый токен надо вернуть обратно на страницу JS.

Den
12.12.2017
10:11:14


Erving
12.12.2017
10:12:06
друзья, прошу вас подсказать, в чем ошибка. код тривиальный, но ведет себя странно.
let updArr = [];
for (let i=0; i<cache.length; i++){
db.collection("news").find({title: cache[i].title}).toArray((err, res)=>{
if (res.length > 0) {
updArr.push(cache[i]);
}
console.log(updArr);
})
}
console.log(updArr.length);
if (updArr.length == 1){
console.log("OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
db.collection("news").insertOne(updArr[0], function(err, res) {
if (err) throw err;
console.log("Number of documents inserted: " + res.insertedCount);
});
}
else if (updArr.length > 1){
console.log("OK2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
db.collection("news").insertMany(updArr, function(err, res) {
if (err) throw err;
console.log("Number of documents inserted: " + res.insertedCount);
});
}
updArr - непустой массив объектов, это видно в стандартном выводе
updArr.length тем не менее всегда равно нулю
соответственно, флагов "ок1" и "ок2" я в стандартном выводе не вижу. с чем это могло бы быть связано?


Den
12.12.2017
10:13:33
можно гист?

Nikolay
12.12.2017
10:14:01
Дядь, тебе вот самому такое приятно читать?

Den
12.12.2017
10:15:51
Надо в описание паблика сделать правило не кидать простыню, а что то типа гист или подобное

Nikolay
12.12.2017
10:17:25
По сабжу: может, проблема в том, что операции — асинхронные, а длину массива ты проверяешь на текущем тике?

Google

1nd2rd3st
12.12.2017
10:20:01

Erving
12.12.2017
10:29:15
можно гист?
https://gist.github.com/VadimInshakov/8af7e6a8c48f58adad99a3f71e762c5b

dexofan
12.12.2017
10:30:17

Nikolay
12.12.2017
10:30:46

Erving
12.12.2017
10:31:23

Nikolay
12.12.2017
10:32:04

Erving
12.12.2017
10:32:18

Nikolay
12.12.2017
10:32:38
> в updArr есть объекты
неа, нету
Залогируй его на последней строчке.
Не внутри хендлера, а в самом-самом конце твоего кода :)

Таймураз
12.12.2017
10:33:15
OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Erving
12.12.2017
10:33:33

Nikolay
12.12.2017
10:33:33

Таймураз
12.12.2017
10:34:48
Данные в массив придут сильно позже окончания цикла
Разве что у тебя запросов в базу не 1000+

Erving
12.12.2017
10:38:04
ага...

Michael ?
12.12.2017
10:38:27
Тебе нужен массив промисов и Promise.all

Erving
12.12.2017
10:38:58

Google

Таймураз
12.12.2017
10:40:46

Erving
12.12.2017
10:42:37

Таймураз
12.12.2017
10:43:28

Erving
12.12.2017
10:44:09

Таймураз
12.12.2017
10:44:19
Программирование- это искусство пользования знанием

енот
12.12.2017
10:50:45
а не гуглом?

Michael ?
12.12.2017
10:53:06
Стаковерфлоу

Таймураз
12.12.2017
10:59:07

arts
12.12.2017
11:11:59

Maxim
12.12.2017
11:39:46
Всем привет! Подскажите а как можно обновить полностью локальные пакеты? Например был монгодб 2.Х.Х, а стал 3.0.0

Eldar
12.12.2017
11:43:55
Сначала перекрестившись

Vsevolod
12.12.2017
11:44:12
есть либо npm-check-updates

Dima
12.12.2017
13:23:36
Есть кто может написать, настроить сервер? Сколько стоимость?

Michael ?
12.12.2017
13:24:45
Написать и настроить могут тут многие, стоимость зависит от сложности, разумеется

Олег
12.12.2017
13:29:35

Maxim
12.12.2017
14:19:37
Народ, а подскажите пожалуйста в чем может быть причина?
Строка добавления метода
administratorSchema.methods.comparePassword = (password, callback) => bcrypt.compare(password, this.password, callback);
Строка вызова метода
admin.comparePassword(password, (error, res) => { … });
в самом методе this = undefined и bcrypt.compare ругается, что нет пароля
в чем может быть?
нашел проблем
проблему*
если расписать administratorSchema.methods.comparePassword = (password, callback) => bcrypt.compare(password, this.password, callback);
как стандартную функцию, то все нормально работает.
Почему такое может быть?

Google

Eldar
12.12.2017
14:41:12
Что значит как стандартную функцию? oO
Ты две одинаковых строчки написал вроде
Очевидно что () => {} перебивает контекст this у тебя

Maxim
12.12.2017
14:42:27
administratorSchema.methods.comparePassword = (password, callback) => bcrypt.compare(password, this.password, callback);
переписать как
administratorSchema.methods.comparePassword = function(password, callback) {
bcrypt.compare(password, this.password, callback);
};

Yaroslav
12.12.2017
14:42:48

Eldar
12.12.2017
14:42:51
Стрелочная функция перебивает контекст, и внутри нее this ссылается не на administratorSchema

Yaroslav
12.12.2017
14:42:53
у меня такое было тоже)

Admin
ERROR: S client not available

Maxim
12.12.2017
14:43:23
а можно использовать стрелочные функции не теряя контекст this?

Eldar
12.12.2017
14:43:52
Можно например не использовать стрелочные функции
Или ссылаться не на this

Maxim
12.12.2017
14:44:21
а ну хорошо )
спасибо)

Eldar
12.12.2017
15:01:08
Забыл, есть еще вариант вызывать функцию через .call / .apply привязывая контекст находу *__*

Morsik
12.12.2017
15:01:28
у них нет своего this

Eldar
12.12.2017
15:01:36
Да, со стрелочными беда

Remite
12.12.2017
15:01:56
Стрелочная функция получает зис родителя

Eldar
12.12.2017
15:02:31
Она получает контекст где была создана скорее оО

Google

Remite
12.12.2017
15:03:00
ну да, кто породил на того и ссылается

Eldar
12.12.2017
15:03:00
Создав стрелочную функцию для метода класса, но объявляя ее вне класса, ты потеряешь контекст, разве нет?

Radim
12.12.2017
15:03:24
нельзя просто сохранить var self=this?

Eldar
12.12.2017
15:03:40
Можно, если у функции будет видимость self в итоге ;D

Remite
12.12.2017
15:03:49

Eldar
12.12.2017
15:04:07
Разные ситуации бывают )

Remite
12.12.2017
15:04:21
Если у вас полноценная функция то используйте function, а стрелочные функции предназначены немножко для другого :)

Eldar
12.12.2017
15:04:22
Тащемта не мой код, я только рассуждаю

Remite
12.12.2017
15:04:33

Eldar
12.12.2017
15:04:56
А если тебе прототип расширить надо? oO
У всех экземляров класса

Remite
12.12.2017
15:05:15
И Вы там будете использовать стрелочную функцию?

Илья
12.12.2017
15:20:04
function getData(url) {
var result = request.get(url, function (error, response, body) {
console.log('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
return JSON.parse(body)._items[0].civicId;
});
//return...
};
Типичный вопрос, но я никак не могу найти ответ.
Как вернуть return из локальной анонимной ф-и?

Morsik
12.12.2017
15:21:59
никак
сделай колбек
или верни промис

Илья
12.12.2017
15:22:18
пытался все записать в переменную но там жесть какая то