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
Sergey
Дима
Это надо выносить в главный файл app.js?
Belmo NaTazu
Дима
Belmo NaTazu
CRM
Я на питоне одну пишу
Belmo NaTazu
Спасибо)
Sergey
А есть идеи по лучше?)
ну написать сервис какой-нибудь
например аналог инстаграма, нпмжс (простой), твиттер
Дима
Ну или свой vk )
Sergey
ну это прям сложнее
ибо дохрена всего
ту же ленту из вк сделать проблематично
Дима
Ну ленту делать на самом деле не так сложно как кажется. Просто подписки собираешь по user_id. Главное отрендерить коллекцию с этими подписками и выдавать по сортировке
Дима
Я на Laravel это пытаюсь сейчас делать
Dmitry
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
сomorsiс
у тебя экспресс?
Dmitry
koa
Dmitry
ctx.body = fs.createReadStream
должно же работать
Таймураз
Dmitry
Таймураз
да
Возможно, перезаписывается в обработчике где-то твое тело ответа
Dmitry
Dmitry
Den
Господа, помогите с одной проблемкой.. У меня лежит zip архив на github. Мне надо его с помощью node js скачать и сохранить в папку на компьютере. Я делаю это посредством request, но когда открываю сохранённый файл, то выдаёт ошибку, да и любые разархиваторы тоже отказываются его разархивировать. У меня есть подозрение, что дело в кодировке, но я не уверен. Помогите пожалуйста, как правильно скачать этот архив? Вот прямая ссылка на архив https://github.com/MerDenchik/Frontio-offline-reference/blob/master/db.zip?raw=true
Sergey
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()
})
}
Den
Dmitry
юзай стримы
+1 pipe в nodejs одна из самых вкусных фич)
сomorsiс
> fs.closeSync(fs.openSync(env.dictArchiveFile, 'w'))
а это зачем?
Dmitry
Den
У меня даже без промисов. Чем мой код хуже?
сomorsiс
и еще .on(...) вернет стрим, поэтому можно зачейнить
Dmitry
У меня даже без промисов. Чем мой код хуже?
ну не хуже, скажем он другой
- я не помню как работает request (и сейчас я бы его не использовал, тогда уж node-fetch, если хочется добавить что-то в зависимости)
- код на callback сложночитаем и вообще немного не в тренде
Den
сomorsiс
Dmitry
倫太郎
как мне сделать чтобы он возвращал обьект только по завршению функции и потом писал в консоль? тут сразу возвращает пустой блок
с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 часа рыщу в поисках решения и впустую. Выручите закипающий мозг, пожалуйста)