Size: a a a

Node.js — русскоговорящее сообщество

2021 January 19

DS

Denis Semenov in Node.js — русскоговорящее сообщество
rvv880
Есть какие-то варианты?
Какое поле должно конфликтовать, е-мейл?
источник

r

rvv880 in Node.js — русскоговорящее сообщество
Нет, id
источник

NK

Nikita Kutsur in Node.js — русскоговорящее сообщество
Denis Semenov
multer.single работает с одним файлом. Для нескольких лучше использовать multer.array , или .any()
спасибо any помогло, но теперь такая ошибка
ENOENT: no such file or directory, open 'images/f5e4ul-541074.jpg

странно, с тем что папка создана images
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
rvv880
Нет, id
Смотрите, ид в данном контексте не будет конфликтовать, его даже в инсерте нет. Если к примеру надо проигнорить е-мейл который в бд уже есть, то надо дать юник на поле е-мейл и в запросе поменять с Id на email.
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
Nikita Kutsur
спасибо any помогло, но теперь такая ошибка
ENOENT: no such file or directory, open 'images/f5e4ul-541074.jpg

странно, с тем что папка создана images
Вы хотите кастомные имена файлам давать?
источник

r

rvv880 in Node.js — русскоговорящее сообщество
Denis Semenov
Смотрите, ид в данном контексте не будет конфликтовать, его даже в инсерте нет. Если к примеру надо проигнорить е-мейл который в бд уже есть, то надо дать юник на поле е-мейл и в запросе поменять с Id на email.
Ошибка таже, не при вставки данных оно падает, а при самом старте
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
rvv880
Ошибка таже, не при вставки данных оно падает, а при самом старте
попробуйте может ещё такое

await connection.createQueryBuilder()
       .insert()
       .into(Post)
       .values(post)
       .orIgnore()
       .execute();
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
rvv880
Ошибка таже, не при вставки данных оно падает, а при самом старте
а если в консоле БД выполнить запрос такая же ошибка?
источник

r

rvv880 in Node.js — русскоговорящее сообщество
Denis Semenov
попробуйте может ещё такое

await connection.createQueryBuilder()
       .insert()
       .into(Post)
       .values(post)
       .orIgnore()
       .execute();
Таже ошибка
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
Nikita Kutsur
спасибо any помогло, но теперь такая ошибка
ENOENT: no such file or directory, open 'images/f5e4ul-541074.jpg

странно, с тем что папка создана images
я вот когда то делал с помощью multer и sharp загрузку и сжатие файлов, может этот middleware поможет.

const sharpImage = async function(req) {
   const destination = 'images/';

   if (req.file) {
       const filename = `${crypto.pseudoRandomBytes(16).toString('hex')}${path.extname(req.file.originalname)}`;

       await sharp(req.file.buffer)
           .resize(900)
           .toFile(
               path.resolve(
                   destination,
                   filename
               )
           );

       return {
           filename,
           path: path.join('images', filename),
           originalname: req.file.originalname
       };
   }
};
источник

NK

Nikita Kutsur in Node.js — русскоговорящее сообщество
спасибо добрый человек
источник

NK

Nikita Kutsur in Node.js — русскоговорящее сообщество
Denis Semenov
я вот когда то делал с помощью multer и sharp загрузку и сжатие файлов, может этот middleware поможет.

const sharpImage = async function(req) {
   const destination = 'images/';

   if (req.file) {
       const filename = `${crypto.pseudoRandomBytes(16).toString('hex')}${path.extname(req.file.originalname)}`;

       await sharp(req.file.buffer)
           .resize(900)
           .toFile(
               path.resolve(
                   destination,
                   filename
               )
           );

       return {
           filename,
           path: path.join('images', filename),
           originalname: req.file.originalname
       };
   }
};
вопрос

const destination = 'images/';

чтобы получать эти файлы, вы использовали такую конструкцию :
app.use("./src/images", express.static(path.join(__dirname, "images")));
у меня место images ,  ./src/images
источник

NK

Nikita Kutsur in Node.js — русскоговорящее сообщество
но файлы не отдает
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
rvv880
Таже ошибка
странно, а можно DDL таблички codes ? Это mysql ?
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
Nikita Kutsur
вопрос

const destination = 'images/';

чтобы получать эти файлы, вы использовали такую конструкцию :
app.use("./src/images", express.static(path.join(__dirname, "images")));
у меня место images ,  ./src/images
вообще я делал чтобы сохраняло в кастомную папку, поскольку мултер по умолч. в images/ ложит., ща скину весь код
источник

NK

Nikita Kutsur in Node.js — русскоговорящее сообщество
а мне вот надо в images
источник

NK

Nikita Kutsur in Node.js — русскоговорящее сообщество
но оно не выводит
источник

DS

Denis Semenov in Node.js — русскоговорящее сообщество
Nikita Kutsur
а мне вот надо в images
server.js
const Koa = require('koa');
const koaStatic = require('koa-static');
const path = require('path');
const mount = require('koa-mount');

const uploadsPath = path.join(__dirname, '../../uploads');

const app = new Koa();
const PORT = process.env.PORT || 1338;

app.use(cors());

app.use(mount('/uploads', koaStatic(uploadsPath)));

// router initialization
const upload = multer();
router.post('/save',  upload.single('image'), async(ctx) => {
   const destination = 'uploads/';

   if (ctx.file) {
       const filename = `${crypto.pseudoRandomBytes(16).toString('hex')}${path.extname(ctx.file.originalname)}`;

       await sharp(ctx.file.buffer)
           .resize(900)
           .toFile(
               path.resolve(
                   destination,
                   filename
               )
           );

       return {
           filename,
           path: path.join('images', filename),
           originalname: ctx.file.originalname
       };
   }

   // Response logic
});

app.listen(PORT, () => {
   console.log(`Server listening on port: ${PORT}`);
});


структура папок:

/apps/src/server.js
/uploads/some_image.png

этот пример уже отдает статику, по пути localhost:port/uploads/image.png

в примере использовался koa но разница с express не большая
источник

r

rvv880 in Node.js — русскоговорящее сообщество
Denis Semenov
странно, а можно DDL таблички codes ? Это mysql ?
Postgres, справа
источник

ГФ

Галина aka Фёдоровна... in Node.js — русскоговорящее сообщество
Всем привет, подскажите плиз, фреймоврк nest во время запуска скрипта в продакшн моде, вылазит ошибка:

Could not find a declaration file for module 'express'. '/app/node_modules/express/index.js' implicitly has an 'any' type

однако, в package.json в dependencies  есть эта зависимость, "@types/express"@types/express": "^4.17.6"

вопрос такой, неужели мне действительно придется писать declaration file для всех моих types зависимостей, или есть другое решение?
источник