Andrey 😼
Сюда всмотрись
Anonymous
и я е пойму, что ему не нравится? (см. первый скрин)
Sergey
ты жс не знаешь?
Sergey
двоеточие вместо = поставь
Andrey 😼
: вместо =
Anonymous
да! черт!! ))
Anonymous
благодарю )
Anonymous
подводные камни копипаста - эта строка первоначально у меня в app.js лежала ))
Дима
ребят, подскажите
Дима
У меня есть 3 роута в express router
Дима
index, posts, users
Sergey
пиши большим сообщением, а не столбиком
Belmo NaTazu
Посоны а подскажите что можно пописать на ноде что бы немного опыта набраться, шифрованый чат норм тема для обучения?
Дима
В роутах index, posts инициализируется Schema - postSchema. Проблема в том что в одном роуте схема видна и идет загрузка страницы, а другой роут не грузит совсем
Дима
var mongoose = require("mongoose"); var Schema = mongoose.Schema; mongoose.Promise = global.Promise; var postScheme = new Schema({ title: String, text: String, rating: { type: Number, default: 0 }, created: { type: Date, default: new Date(), }, });
Дима
Это прописывается для каждого файла в папке routes
Дима
Это надо выносить в главный файл app.js?
Belmo NaTazu
ну такое но попробуй, да
А есть идеи по лучше?)
Belmo NaTazu
CRM
Я на питоне одну пишу
Belmo NaTazu
Спасибо)
Sergey
А есть идеи по лучше?)
ну написать сервис какой-нибудь например аналог инстаграма, нпмжс (простой), твиттер
Дима
Ну или свой vk )
Sergey
ну это прям сложнее ибо дохрена всего ту же ленту из вк сделать проблематично
Дима
Ну ленту делать на самом деле не так сложно как кажется. Просто подписки собираешь по user_id. Главное отрендерить коллекцию с этими подписками и выдавать по сортировке
Дима
Я на Laravel это пытаюсь сейчас делать
Dmitry
вай?
Дима
Telegram bot'a
Дима
https://github.com/doroninds/Nodejs-Telegram-bot
Дима
Вот мой примерчик если что
Дима
API очень простое
Belmo NaTazu
Ок спасибо посоны
Belmo NaTazu
Буду думать
Дима
понял в чем проблема
Дима
решу сам
Дима
понял в чем проблема
Производил многократную инициализацию mongoose схемы. Просто вынес модели и все
Дима
Стало круче:
Дима
router.get('/', async (req, res, next) => { mongoose.connect(url); var posts = await Post.find({}); res.render('index', {title: 'Home', posts: posts}); });
Дима
А было вот как 😁 router.get('/', function(req, res, next) { res.render('post/index', { title: 'Posts' }); router.get('/', (req, res, next) => { mongoClient.connect("mongodb://localhost:27017/test", (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}); }); });
Dmitry
Как а ноде выдать файл на скачку ? аяксом
Dmitry
типа аля url/download и мне браузер должен скачать
Andrey 😼
Content-Disposition задать
Dmitry
вот и я думаю, причем тут нода
Dmitry
вот и я думаю, причем тут нода
хз. мб потому что на ноде делаю ?
Dmitry
Dmitry
есть
сomorsiс
у тебя экспресс?
Dmitry
koa
Dmitry
ctx.body = fs.createReadStream должно же работать
Таймураз
ctx.body = fs.createReadStream должно же работать
Проверь, у тебя стрим создается хотя бы
Таймураз
да
Возможно, перезаписывается в обработчике где-то твое тело ответа
Dmitry
Таймураз
на клиенте что должно быть ?
Попробуй просто по прямой ссылке скачивание реализовать, а потом уже шамань логику под клиента
Den
Господа, помогите с одной проблемкой.. У меня лежит zip архив на github. Мне надо его с помощью node js скачать и сохранить в папку на компьютере. Я делаю это посредством request, но когда открываю сохранённый файл, то выдаёт ошибку, да и любые разархиваторы тоже отказываются его разархивировать. У меня есть подозрение, что дело в кодировке, но я не уверен. Помогите пожалуйста, как правильно скачать этот архив? Вот прямая ссылка на архив https://github.com/MerDenchik/Frontio-offline-reference/blob/master/db.zip?raw=true
Den
request({ url: 'https://github.com/MerDenchik/Frontio-offline-reference/blob/master/db.zip?raw=true', method: 'GET', encoding: 'utf-8' }, function(err, res, page) { });
сomorsiс
юзай стримы
Dmitry
Господа, помогите с одной проблемкой.. У меня лежит zip архив на github. Мне надо его с помощью node js скачать и сохранить в папку на компьютере. Я делаю это посредством request, но когда открываю сохранённый файл, то выдаёт ошибку, да и любые разархиваторы тоже отказываются его разархивировать. У меня есть подозрение, что дело в кодировке, но я не уверен. Помогите пожалуйста, как правильно скачать этот архив? Вот прямая ссылка на архив https://github.com/MerDenchik/Frontio-offline-reference/blob/master/db.zip?raw=true
рабочий код import http from 'http' import fs from 'fs' export default (env) => { return download(URL).then((stream) => { return new Promise((resolve, reject) => { fs.closeSync(fs.openSync(env.dictArchiveFile, 'w')) const writeStream = fs.createWriteStream(env.dictArchiveFile) writeStream.on('finish', resolve) writeStream.on('error', reject) stream.pipe(writeStream) }) }) } const download = (url) => { return new Promise((resolve, reject) => { http.get(url, (response) => (resolve(response))).on('error', (e) => (reject(e))).end() }) }
Dmitry
юзай стримы
+1 pipe в nodejs одна из самых вкусных фич)
сomorsiс
> fs.closeSync(fs.openSync(env.dictArchiveFile, 'w')) а это зачем?
Den
У меня даже без промисов. Чем мой код хуже?
сomorsiс
и еще .on(...) вернет стрим, поэтому можно зачейнить
Dmitry
У меня даже без промисов. Чем мой код хуже?
ну не хуже, скажем он другой - я не помню как работает request (и сейчас я бы его не использовал, тогда уж node-fetch, если хочется добавить что-то в зависимости) - код на callback сложночитаем и вообще немного не в тренде
Dmitry
и еще .on(...) вернет стрим, поэтому можно зачейнить
глянул свежими глазами и добавил задачу в треккер - “переписать”)
倫太郎
как мне сделать чтобы он возвращал обьект только по завршению функции и потом писал в консоль? тут сразу возвращает пустой блок
сomorsiс
напиши синхронно
倫太郎
Та я уже придумал как избежать этого async/await
Anonymous
node-telegram-bot-api deprecated Automatic enabling of cancellation of promises is deprecated. In the future, you will have to enable it yourself. See https://github.com/yagop/node-telegram-bot-api/issues/319.
Anonymous
Смотрю, в ютубе, как человек делает то же самое, что и я используя yarn и у него все работает нормально после подключения babel. Уже 4 часа рыщу в поисках решения и впустую. Выручите закипающий мозг, пожалуйста)