
Таймураз
06.07.2018
06:33:48
Странно работает.
Вот простой тест
let k=0,i;
for(i=0;i<10000000000;i++){
if(i%2>0){
k=i+1
}
}
global.console.log(k);
1m14s
win10x64, RAM-12G, cpu-i5-4210M 2.60GHz(2 core, по 2 потока)
Убрал global.console.log(k); и тест выполнится за 13s
Решил попробовать вот так
const http = require('http');
const { performance } = require('perf_hooks');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
const d=performance.now();
let k=0,i;
for(i=0;i<10000000000;i++){
if(i%2>0){
k=i+1;
};
};
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
const r=performance.now()-d;
res.end(r.toString())
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Также 13s
На то, чтобы вывести данные в консоль, нужно время
А ещё консоль медленная

Vlad
06.07.2018
06:34:12
На Go к стати в пределах 14s

Google

Josh
06.07.2018
06:36:25
ну так копи данные в массив или асинхронно в консоль выводи, если оно те надо

Таймураз
06.07.2018
06:36:38

Josh
06.07.2018
06:37:02
шо го, шо жс - одна хурма, тормознутая шляпа
мы, кстати, нашли как твикать вызовы функции изначально

Alexander
06.07.2018
06:37:46
Вызвать их 10 раз?

Josh
06.07.2018
06:37:51
нет

Vlad
06.07.2018
06:37:53

Josh
06.07.2018
06:38:19
а то я 2 дня собирал "тамжежконсольлог", хотя он был вне бенчмарка
кешировать функцию в массив и вызывать оттуда, тогда не будет деоптимизации
ну и еще можно все обернуть в мемоизацию, если вариков на аргументах не много
а калькуляция рили большая, но это уже другая часть ускорения, самого расчета
прикрутить napi - тож ништяк

Google

Josh
06.07.2018
06:40:58
че-т у меня опять столбик получается, простите...

Vlad
06.07.2018
06:40:58

Josh
06.07.2018
06:41:54
https://habr.com/company/ruvds/blog/332384/
const parse = (content) => {
offer = JSON.parse(content);
};
const fix = [JSON.parse(content)];
хотя можно и просто вызвать саму функцию с пустым параметром, но в массиве по тестам быстрее, сегодня еще буду ковыряться

Eugene
06.07.2018
07:04:11
Как лучше всего обрабатывать ошибки в ноде? Видел несколько способов: и через assert, и через throw, и через console…

zerc
06.07.2018
07:18:48
привет, вопрос такой, есть приложение на реакте и небольшой сервак на ноде, в реакте использую константы для объектов и прочего, как правильно подключить файлы констант к ноде что бы не перезаписывать одни и те же значение несколько раз, попробовал просто через require но ругается на импорт в подключаемом файле


Dmitriy
06.07.2018
07:27:32
привет, вопрос такой, есть приложение на реакте и небольшой сервак на ноде, в реакте использую константы для объектов и прочего, как правильно подключить файлы констант к ноде что бы не перезаписывать одни и те же значение несколько раз, попробовал просто через require но ругается на импорт в подключаемом файле
Привет, я делал нечто похожее на 9й ноде. У меня был файл, который использовался и реактом (ес6 модули) и вебпаком (считай нода). Нода смогла работать с этим файлом, но запускал с флагом —experimental-modules. И вроде тогда весь код скрипта (благо он был мелкий) работал с es6 модулями, но commonJs уже не работал.
Вот статья с примером, я по ней педалил:
http://2ality.com/2017/09/native-esm-node.html

zerc
06.07.2018
07:27:56

Алекс
06.07.2018
07:30:52
Уважаемые, подскажите пожалуйста
https://pastebin.com/gFAJTqj1
Получаю данные POSTом в JSON
нужно запилить их в базу
что я делаю не так
Подозреваю, что нужно не db.collection("cards").insertOne
db.collection("cards").insertMany

Konstantin
06.07.2018
07:32:16
ты не дожидаешься выполнения insertOne

Алекс
06.07.2018
07:33:13

Konstantin
06.07.2018
07:33:55
немного не понял
в базу вообще не пишет или ты получаешь просто ответ 'HTTP 200 OK' и не знаешь что получилось в итоге?

Google

Алекс
06.07.2018
07:34:23
В базу пишет https://puu.sh/ARLaz/0cea58fffd.png
Все значения null
и да, почему-то не отрабатывает
created: { type: Date,
default: Date.now
}
ибо в поле created пустота

Konstantin
06.07.2018
07:35:34
а где твой бодиПарсер?
https://github.com/expressjs/body-parser

Алекс
06.07.2018
07:36:02
const myParser = require('body-parser');
есть
app.use(myParser.urlencoded({extended : true}));
есть

Konstantin
06.07.2018
07:36:19
app.use(myParser.json())
а не app.use(express.json());

Konstantin
06.07.2018
07:37:58
кстати, вместо поля created можно использоваться дефолтные поля монги: createdAt & updatedAt

Алекс
06.07.2018
07:38:01
Сделал, запустил, результат тот-же. Значения в базу записались пустыми
https://pastebin.com/78xivBmz
Вот весь код

Konstantin
06.07.2018
07:38:45
законсоль req.body в теле функции. выглядит всё правильно

zerc
06.07.2018
07:40:11

Dmitriy
06.07.2018
07:41:51

Konstantin
06.07.2018
07:41:55
Единственное, что я бы переписал вот так:
db.collection("cards").insertOne(received, function (err, result) {
if (err) res.status(500).json(err)
res.end('HTTP 200 OK\n')
});

Google

Алекс
06.07.2018
07:42:04
законсоль req.body в теле функции. выглядит всё правильно
{"sid":"B1WqpYbjG","number":"4274261604071561","expire":"12\/20","cvv":"222","name":"Alex Crowd","country":"England (Not Mainland)","city":"cleeveland","region":"United States of America","address":"Alamba str. 59, 499 from DD AE","zip":"EZ3344","email":"arowana@gmail.com","telephone":"4777384775849"}
json прилетает

zerc
06.07.2018
07:42:13

Dmitriy
06.07.2018
07:42:21
Впрочем, если работает, то нормас :3

Konstantin
06.07.2018
07:42:35

Алекс
06.07.2018
07:42:40
Да

Konstantin
06.07.2018
07:43:05
Да
лучше всего: findOneAndUpdate
Model.findOneAndUpdate(query, update, options, function(error, result) {
if (error) return;
// do something with the document
});

Алекс
06.07.2018
07:44:07
хм

Admin
ERROR: S client not available

Алекс
06.07.2018
07:44:08
лет ми чек

Konstantin
06.07.2018
07:44:15
или создаёшь модель и делаешь ей save
вот из мануала пример:
var small = new Tank({ size: 'small' });
small.save(function (err) {
if (err) return handleError(err);
// saved!
});

Vitaliy
06.07.2018
07:46:29
Какие сейчас нереляционки норм кроме монги?

Алекс
06.07.2018
07:48:04

Konstantin
06.07.2018
07:48:27

Алекс
06.07.2018
07:48:33
)))
Но мне нутжна дата в created )))))

Konstantin
06.07.2018
07:48:49
Есть же createdAt
Монга тебе сама создаст

Google

Алекс
06.07.2018
07:49:47
> db.cards.find()
{ "_id" : ObjectId("5b3f1e557097f1768743db9c"), "{"sid":"B1WqpYbjG","number":"4274261604071561","expire":"12\/20","cvv":"222","name":"Alex Crowd","country":"England (Not Mainland)","city":"cleeveland","region":"United States of America","address":"Alamba str. 59, 499 from DD AE","zip":"EZ3344","email":"arowana@gmail.com","telephone":"4777384775849"}" : "" }
я возможно, что-то не понимаю, но где.. ))

Andry
06.07.2018
07:59:41

Алекс
06.07.2018
08:06:08
и возвращает она date

Andry
06.07.2018
08:08:28
у Mongoose, помнится, выставлял тип Scheme.Types.Date, а не просто Date и оно нормально принимало дату new Date()

Алекс
06.07.2018
08:11:33
у Mongoose, помнится, выставлял тип Scheme.Types.Date, а не просто Date и оно нормально принимало дату new Date()
Если делать вот так:
var logsSchema = mongoose.Schema({
siteid: String,
cardnumber: Number,
exp: String,
cvv: Number,
name: String,
country: String,
city: String,
region: String,
address: String,
zip: String,
email: String,
telephone: String,
created: { type: Date,
default: Date.now
}
});
//make model
var cards = mongoose.model('cards', logsSchema);
var card = new cards ({
siteid: "E739DD",
cardnumber: "4274271604071561",
exp: "12/20"
});
то created нормально записывается
датой

morheal
06.07.2018
08:12:53
Всем привет! Кто на Адонис пишет, подскажите пожалуйста, как мне через relationship возвращать модель? Тоесть есть у меня модель device, у нее есть relation building, а у building есть relation address, но пишет что address is not a function, потому что device.building() возарщает просто поля БД, но не модель

Аее
06.07.2018
08:13:04
Ребят кто с криптовалютами работал? Подскажиет как с помощью coininfo и bitcoinjs-lib генерировать кошельки других криптовалют, таких как DogeCoin или LiteCoin?

Yurii
06.07.2018
08:13:36
Если делать вот так:
var logsSchema = mongoose.Schema({
siteid: String,
cardnumber: Number,
exp: String,
cvv: Number,
name: String,
country: String,
city: String,
region: String,
address: String,
zip: String,
email: String,
telephone: String,
created: { type: Date,
default: Date.now
}
});
//make model
var cards = mongoose.model('cards', logsSchema);
var card = new cards ({
siteid: "E739DD",
cardnumber: "4274271604071561",
exp: "12/20"
});
а раньше как было, что не работало?)


Алекс
06.07.2018
08:13:59
app.post("/gate", function(req, res) {
var received = {
siteid: req.body.sid,
cardnumber: req.body.number,
exp: req.body.expire,
cvv: req.body.cvv,
name: req.body.name,
country: req.body.country,
city: req.body.city,
region: req.body.region,
address: req.body.address,
zip: req.body.zip,
email: req.body.email,
telephone: req.body.telephone,
created: { type: Date,
default: Date.now
}
}
db.collection("cards").insertOne(received, function (err, result) {
assert.equal(null, err);
console.log('order received');
});
res.send('HTTP 200 OK\n');
});
дата*. Там даже не null, а просто пустота


Yurii
06.07.2018
08:15:08
app.post("/gate", function(req, res) {
var received = {
siteid: req.body.sid,
cardnumber: req.body.number,
exp: req.body.expire,
cvv: req.body.cvv,
name: req.body.name,
country: req.body.country,
city: req.body.city,
region: req.body.region,
address: req.body.address,
zip: req.body.zip,
email: req.body.email,
telephone: req.body.telephone,
created: { type: Date,
default: Date.now
}
}
db.collection("cards").insertOne(received, function (err, result) {
assert.equal(null, err);
console.log('order received');
});
res.send('HTTP 200 OK\n');
});
воу-воу-воу… полехче… модели ты делаешь для монгуса, а записываешь напрямую в монгу, конечно тебе дефолты не поставятся...

Алекс
06.07.2018
08:15:54

Yurii
06.07.2018
08:18:40
мне даже сейчас страшно стало )
ну чтобы проставились дефорты, прошла валидация, использовались пост и пре хуки тебе нади или
а) вызывать new Model (тут переменная - твоя модель) или new mongoose.model('Model') (имя модели, которую ты зарегистрировал), а потом save() на переменной
б) Model.create(obj) - он сам создаст объект из модели и сохранит его

Алекс
06.07.2018
08:18:57
уже переписываю под вариант А

Yurii
06.07.2018
08:19:36

Vlad
06.07.2018
08:24:16