
?
10.08.2018
19:25:18

Alexey
10.08.2018
19:25:45
вижу надо..
а как расшарить переменную глобально по роутам?

Google

Alexander
10.08.2018
19:26:22
req.peremennaya = 'lol'
и везде она будет в req.peremennaya

?
10.08.2018
19:26:40

Alexey
10.08.2018
19:26:43

Alexander
10.08.2018
19:27:11
app.use((req, res, next) => {
req.key = 'value';
return next();
})

Alexey
10.08.2018
19:28:17

Alexander
10.08.2018
19:28:44
req и res это конкретные переменные request и response stream текущего запроса. ты накапливаешь в них данные в каждой мидлваре, чтобы потом вернуть результирующую информацию в res. а с помощью next ты двигаешься к следующей мидлваре

Alexander
10.08.2018
19:30:46
http://expressjs.com/en/4x/api.html#app.get

Google

Alexander
10.08.2018
19:30:47
?

Alexey
10.08.2018
19:30:54
видимо так:
app.use((req, res, next) => {
req.ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress;
req.referer = req.headers.referer
return next();
})

Alexander
10.08.2018
19:31:08
а, вы через мидлварь

Alexander
10.08.2018
19:31:32

Alexey
10.08.2018
19:31:47

Alexander
10.08.2018
19:32:15

Alexey
10.08.2018
19:32:40

Alexander
10.08.2018
19:33:19
и как бы это сделать?
скорми в модуль app и сделай app.use(). но учти, что это будет срабатывать на каждый запрос

Alexander
10.08.2018
19:34:14
кстати, какой мидлварью грузить файлы?

Alexey
10.08.2018
19:34:18

Alexander
10.08.2018
19:34:45
это при условии, что app у тебя это express()

Alexey
10.08.2018
19:35:56
app.post('/sformirovat_zakaz', (req, res, next) => {})
app.post("/add_order", async (req, res) => {
console.log("req", req.body);
const order = req.body.order;
const client_id = req.body.client_id;
const client = req.body.client;
const config_id = req.body.config_id;
const config = req.body.config;
console.log("####", req)
const msg = require("../../helpers/order_msg")(
config,
config_id,
order,
client,
);
у меня что то типа того.. те модуль уже в обработку роута рекьюриться..

Alexander
10.08.2018
19:36:29
зачейни

Alexey
10.08.2018
19:36:51
понятно дело я могу в модуль из роута просто аргументом передать ip так норм?

Alexander
10.08.2018
19:37:49
пусть модуль у тебя возвращает функцию middleware с параметрами req, res, next и в месте его подключения просто пишешь:
const module = require('...order_msg');
app.post('/post_order', module.middleware);

Alexey
10.08.2018
19:39:21
понял.. это что бы перед обработкой роута выполнился.. да можно.. но тут чуток излишне.. тут лишь текст письма сформировать.. это просто хелпер.. и нужен он не именно перед роутом... ну а скажем так в середине его обработки..

Google

Alexander
10.08.2018
19:39:52
тогда импортируй его выше как функцию обработчик от параметров, перечисленных тобой выше. а в сам хелпер отправляй только необходимую информацию
так же, как ты сделал выше, только require вынеси за пределы миддлвари

Alexey
10.08.2018
19:40:44

Alexander
10.08.2018
19:41:20
можешь показать пример.. тогда выносить вместе с аргументами или без..
const helper = require("../../helpers/order_msg");
app.post("/add_order", async (req, res) => {
console.log("req", req.body);
const order = req.body.order;
const client_id = req.body.client_id;
const client = req.body.client;
const config_id = req.body.config_id;
const config = req.body.config;
console.log("####", req)
const msg = helper(
config,
config_id,
order,
client,
);

Alexey
10.08.2018
19:41:38
понял без аргументов.. минуту.. пробую..

Alexander
10.08.2018
19:45:52
ну ::1 это локалхост

Alexey
10.08.2018
19:51:58
нужно файл с вот такого типа js объектом расшарить фронту..
Просто что бы axios его на фронте скачивал и выполнялся он там..
Желательно роут создать и get запрос...всего 4 кб. те с производительностью тоже видимо не вопрос..

not an Alex
10.08.2018
20:12:13
Добрый вечер! Буду очень благодарен за помощь
Никак не могу понять в чем проблема
var mongoose = require('mongoose');
var bcrypt = require('bcrypt');
var saltRounds = 8;
var user = new mongoose.Schema({
name: {
type: String
},
encryptedPassword: {
type: String
}
},
{
toJSON: {
virtuals: true
},
toObject:{
virtuals: true
}
});
user.virtual('password').set((password) => {
bcrypt.genSalt(saltRounds, (err, salt) => {
bcrypt.hash(password, salt, (err, hash) => {
this.encryptedPassword = hash;
});
});
});
user.methods.checkPassword = function(password) {
bcrypt.compare(password, this.encryptedPassword, (err, res) => {
return res;
});
}
module.exports = mongoose.model('user', user);


Alexander
10.08.2018
20:13:38
Добрый вечер! Буду очень благодарен за помощь
Никак не могу понять в чем проблема
var mongoose = require('mongoose');
var bcrypt = require('bcrypt');
var saltRounds = 8;
var user = new mongoose.Schema({
name: {
type: String
},
encryptedPassword: {
type: String
}
},
{
toJSON: {
virtuals: true
},
toObject:{
virtuals: true
}
});
user.virtual('password').set((password) => {
bcrypt.genSalt(saltRounds, (err, salt) => {
bcrypt.hash(password, salt, (err, hash) => {
this.encryptedPassword = hash;
});
});
});
user.methods.checkPassword = function(password) {
bcrypt.compare(password, this.encryptedPassword, (err, res) => {
return res;
});
}
module.exports = mongoose.model('user', user);
а в чем проблема?


not an Alex
10.08.2018
20:14:42
а в чем проблема?
вот так я проверяю это
mongoose.connect(cfg.urlDB, {useNewUrlParser: true});
var user = require('./models/user');
var test = new user({name: 'test'});
test.password = 'test';
test.save();
суть в том, что сохраняется только поле name, а виртуальное поле никак не хочет работать

Alexander
10.08.2018
20:21:44

Валерий
10.08.2018
20:29:09
Надеюсь вы не только по ноде мастера а и по браузерному тоже) Есть видео, которое долго загружается.
Пытаюсь сделать прогрес бар, отлавливаю событие progress, но чтобы посчитать процентаж нужно знать длинну видео, и оно равно NaN, узнал что video.duration становится числом после события onloadmetadata, но оно происходит после progress.
И в процессе загрузки не могу знать процентаж. Кто с этим сталкивался. Как это исправить?

Alexander
10.08.2018
20:29:42

Валерий
10.08.2018
20:30:24

Google

Alexander
10.08.2018
20:30:45
берешь <бд> и хранишь в ней метаданные видосиков и их адреса.
превью там всякие, аки на ютубе

Валерий
10.08.2018
20:33:18
Интересный метод. Я бы так и сделал, если бы мне куча ресурсов не посоветовала использовать события onprogress и другие ништяки. Видимо есть способ без явного хранения метадаты. И я хотел бы его найти

Alexander
10.08.2018
20:33:59


Alexander
10.08.2018
21:29:43
Добрый вечер! Буду очень благодарен за помощь
Никак не могу понять в чем проблема
var mongoose = require('mongoose');
var bcrypt = require('bcrypt');
var saltRounds = 8;
var user = new mongoose.Schema({
name: {
type: String
},
encryptedPassword: {
type: String
}
},
{
toJSON: {
virtuals: true
},
toObject:{
virtuals: true
}
});
user.virtual('password').set((password) => {
bcrypt.genSalt(saltRounds, (err, salt) => {
bcrypt.hash(password, salt, (err, hash) => {
this.encryptedPassword = hash;
});
});
});
user.methods.checkPassword = function(password) {
bcrypt.compare(password, this.encryptedPassword, (err, res) => {
return res;
});
}
module.exports = mongoose.model('user', user);
user.virtual('password').set(function(password) {
var salt = bcrypt.genSaltSync(saltRounds);
var hash = bcrypt.hashSync(password, salt);
this.encryptedPassword = hash;
});

not an Alex
10.08.2018
21:55:59

Alexander
10.08.2018
21:58:07
так и должно быть )
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions
- (но не привязаны к собственному this, arguments, super, или new.target). Стрелочные функции всегда анонимные.

енот
11.08.2018
01:22:36
а как ты проверяешь?
проверяешь ты как?

Nuriddin
11.08.2018
05:23:05
просто через субмит

енот
11.08.2018
05:23:24
открой для себя удивительный мир POSTMAN

Nuriddin
11.08.2018
05:27:22
на postman тоже такой ответ получился

енот
11.08.2018
05:27:39
какой-такой?

Nuriddin
11.08.2018
05:27:50
долгая загрузка и никакой ответ

енот
11.08.2018
05:27:50
покажи скриншот
так ты значит не на тот порт ломишься

Nuriddin
11.08.2018
05:28:42
нет порт правильно. get работает

Google

Maksim
11.08.2018
05:46:19
Провет, поделитесь, кто как защищается от csrf?

Таймураз
11.08.2018
05:50:53
Во-первых, gist.github.com
Во-вторых, .send не завершает ответ

Nuriddin
11.08.2018
06:01:56

Таймураз
11.08.2018
06:03:20

Nuriddin
11.08.2018
06:08:25

Таймураз
11.08.2018
06:09:16

Nuriddin
11.08.2018
06:11:23