Таймураз
Pavel
Ты до конца хоть прочёл?
меня интересует можно ли какой-то глобальный или изящный обработчик поставить, а не пихать везде try catch
Таймураз
Таймураз
http://expressjs.com/en/guide/error-handling.html
Таймураз
На русском тоже есть, если все же проявить учтивость
Pavel
спасибо
Таймураз
Таймураз
спасибо
Не за что
Но такие простые вопросы гуглятся на раз
Таймураз
Бывает
Дима
Подскажите пожалуйста, есть ли варианты как можно сократить данную конструкцию:
Дима
// Index page
router.get('/', (req, res, next) => {
mongoClient.connect(url, (err, db) => {
if(err) return console.log(err);
db.collection("posts").find().toArray( (err, results) => {
var posts = results;
db.close();
res.render('post/index', { title: 'Posts', posts: posts});
});
});
});
Дима
У меня в каждом роуте объявляется mongoClient.connect
Дима
Можно ли сократить так чтобы в роутах можно было бы работать сразу с коллекций db.collection?
Артём
вынести коннект?
Дима
ага
Артём
вынеси)
Дима
Спасибо )
Михаил Макарычев
Await можно писать вне async?
Arthur
The await operator is used to wait for a Promise. It can only be used inside an async function.
Sergey
Михаил Макарычев
Нет
А в браузерном js тоже нельзя?
Sergey
Sergey
Нигде нельзя
Михаил Макарычев
Eugeny
Eugeny
там правда на примере экспресс 3, но думаю, ты разберешься, комменты читай, если что
Eugeny
или доку
Артём
просто в next() бросай ошибку и потом в конце где-нибудь делай такое что-то:
"app.use(compression({}));
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(express.static('public'));
routes(app);
app.use(appErrorHandler);"
Где appErrorHandler - это функа, которая обрабатывает все ошибки
Артём
ребят, как красиво обрабатывать ошибки на express сервере? кто как делает?
Vitaliy
ну самое простое мидллвеир з 4 параметрами
Eugene
Всем привет
Как правильно бекапить и ресторить базу для тестов?
Юрий
Добрый день.
Не подскажите, почему при попытке явно вызвать gc(), освобождение памяти происходит всё равно с длительной задержкой? Будто сборщик как работал в штатном режиме, так и продолжает работать? Т.е. что бы определить, сколько расходуется памяти на ту или иную операцию, приходится всё равно ждать.
(но память при этом моментально освобождается при достижении лимита выделенной на процесс памяти)
Anonymous
Eugene
конкретно -
sequelize, mocha, postgres
в before я проверяю и закрываю все другие коннекты
REVOKE CONNECT ON DATABASE chat FROM public; ' +
'SELECT pg_terminate_backend(pg_stat_activity.pid) ' +
'FROM pg_stat_activity ' +
'WHERE pg_stat_activity.datname = \'db\' AND pid <> pg_backend_pid()потом создаю слепок с текущей бд
CREATE DATABASE backup WITH TEMPLATE bd OWNER postgresподключаюсь к ней, раню кейсы и в after дропаю бекапную базу
правильно ли так делать?
Eugene
может, правильней скриптом делать бекап и рестор, и выполнять их в начале/конце всех тестов? но тогда каждый раз придется ранить все тесты и только из под терминала, в идее тоже хочется по кнопочке ранить конкретный маленький тест какой нибудь
сейчас проблема в том, что переодически коннекты после запросов не закрываются и при след запросе падает на ошибке, что бж занята другими пользователями, мной же
Eugene
Короче, нипанятна вообще и гугл не гуглит
Vint
Ну сделай из слепка сиды. Сделай дамп в plain sql формате, его накатывай перед тестами.
Semen
/stat@combot
Combot
combot.org/chat/-1001041204341
Vint
Node Security Platform, говорили они...
Vint
Dmitry
)))
Vint
И даже так к ним можно обратиться
Vint
Vint
Я сношал таких умельцев.
Yan👀
все робит вроде
Vint
Так это у простых смотрящих, а я свои запросики шлю.
Дима
Подскажите пожалуйста кто работал с express + mongo. Как реализовать пагинацию с данными в шаблон?
Дима
У меня есть предположение что в mongo ограничивать функции limit() по параметру в url
l3xxxy
ну примерно так насколько мне известно если по логике
l3xxxy
сам пагинацию никогда не делал, делал черезщ подгрузку по последней записи и все
Дима
Николаич
mongoose-paginate
Дима
mongoose-paginate
Знал что есть какой-то пакет для этого. Однако он уже с октября 2016 ни разу не коммитился.
Дима
Еще подскажите, почему данный роут не найден, хотя в форме я указал тип метода
Дима
router.delete('/:postId', function(req, res) {
mongoose.connect(url);
var Post = mongoose.model("Post", postScheme);
var id = req.params.postId;
Post.findByIdAndRemove(id, function(err, doc){
res.redirect('/posts');
});
});
Дима
В шаблоне:
Дима
form(method='post', action='?_method=DELETE').btn-group
button(type='submit').btn.btn-danger Delete post
Sergei
Sergei
через форму по идее кроме get/post нельзя использовать ниче
Sergei
а то что у тебя там delete это get-параметр кек
Дима
Дима
Vitaliy
та отошли аяксик(fetch) который delete и все
Дима
router.delete
Sergei
ну тогда непонятно, с чего бы у тебя там должно подменяться на delete
Sergei
router.delete ожидает HTTP - DELETE, а получает HTTP - POST с query _method=DELETE, так дела не делаются))
Дима
как же тогда форму объявить?
Sergei
https://github.com/expressjs/method-override стоит?
Sergei
ну тогда надо вглубь копать, но вообще конечно извращение :/
Серёжа
всем привет ребят как исправить данную ошибку