• 01-10-2023, 16:36:50
    #1
    hata benim anladığım resimi silerken resim başka yerde kullanılmak isteniyor ve kilitleniyor.
    console daki hata :
    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
        at new NodeError (node:internal/errors:399:5)
        at ServerResponse.setHeader (node:_http_outgoing:645:11)
        at ServerResponse.header (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:794:10)
        at ServerResponse.location (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:915:15)
        at ServerResponse.redirect (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:953:18)
        at C:\Users\user\Desktop\nodejs\routes\admin.js:44:13
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
      code: 'ERR_HTTP_HEADERS_SENT'
    }
    [Error: EBUSY: resource busy or locked, unlink 'C:\Users\user\Desktop\nodejs\public\imgs\products\1.jpg'] {
      errno: -4082,
      code: 'EBUSY',
      syscall: 'unlink',
      path: 'C:\\Users\\user\\Desktop\\nodejs\\public\\imgs\\products\\1.jpg'
    }
    Hocanın yazdığı kod:
    router.post("/blogs/:blogid", imageUpload.upload.single("resim"), async function(req, res) {
        const blogid = req.body.blogid;
        const baslik = req.body.baslik;
        const aciklama = req.body.aciklama;
        let resim = req.body.resim;
        if(req.file) {
            resim = req.file.filename;
            fs.unlink('./public/images/' + req.body.resim, err => {
                console.log(err);
            });
        }
        const anasayfa = req.body.anasayfa == "on" ? 1 : 0;
        const onay = req.body.onay == "on" ? 1 : 0;
        const kategoriid = req.body.kategori;
        try {
            await db.execute("UPDATE blog SET baslik=?, aciklama=?, resim=?, anasayfa=?, onay=?, categoryid=? WHERE blogid=?", [baslik,aciklama, resim,anasayfa,onay,kategoriid, blogid]);
            res.redirect("/admin/blogs?action=edit&blogid=" + blogid);
        }
        catch(err) {
            console.log(err);
        }
    });
    benim yazdığım kod:
    router.post('/products/:id', imgUpload.upload.single('productImg'), async (req, res) => {
        const id = req.body.id;
        let productImg = req.body.productImg;
        if (req.file) {
            productImg = req.file.filename;
             fs.unlink('./public/imgs/products/' + req.body.productImg, err => {
                console.log(err);
            });
        }
        const name = req.body.productName;
        const price = req.body.productPrice;
        const desc = req.body.productDescription;
        const isHome = req.body.isHome == "on" ? 1 : 0;
        const isActive = req.body.isActive == "on" ? 1 : 0;
        
        try {
            await db.execute("UPDATE `nodedb`.`products` SET `name`=?,`price`=?,`img`=?,`desc`=?,`isHome`=?,`isActive`=? WHERE (`id`=?);",
                [name, price, productImg, desc, isHome, isActive, id]);
            res.redirect('/admin/products?action=edit')
        } catch (err) {
            console.log(err)
        }
    })
    bu bahtı kara jr. yazılımcıya yardım edebilecek varmı ?
  • 01-10-2023, 16:39:18
    #2
    router.post('/products/:id', imgUpload.upload.single('productImg'), async (req, res) => {
        const id = req.body.id;
        let productImg = req.body.productImg;
    
        if (req.file) {
            productImg = req.file.filename;
            const filePathToDelete = './public/imgs/products/' + req.body.productImg;
            if (fs.existsSync(filePathToDelete)) {
                fs.unlink(filePathToDelete, err => {
                    if (err) {
                        console.error(err);
                    }
                });
            }
        }
    
        const name = req.body.productName;
        const price = req.body.productPrice;
        const desc = req.body.productDescription;
        const isHome = req.body.isHome == "on" ? 1 : 0;
        const isActive = req.body.isActive == "on" ? 1 : 0;
        try {
            await db.execute("UPDATE `nodedb`.`products` SET `name`=?,`price`=?,`img`=?,`desc`=?,`isHome`=?,`isActive`=? WHERE (`id`=?);",
                [name, price, productImg, desc, isHome, isActive, id]);
            res.redirect('/admin/products?action=edit');
        } catch (err) {
            console.log(err);
            res.status(500).send('İşlem sırasında bir hata oluştu.');
        }
    });
    dene bakalım bi
  • 01-10-2023, 16:50:52
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    router.post('/products/:id', imgUpload.upload.single('productImg'), async (req, res) => {
        const id = req.body.id;
        let productImg = req.body.productImg;
    
        if (req.file) {
            productImg = req.file.filename;
            const filePathToDelete = './public/imgs/products/' + req.body.productImg;
            if (fs.existsSync(filePathToDelete)) {
                fs.unlink(filePathToDelete, err => {
                    if (err) {
                        console.error(err);
                    }
                });
            }
        }
    
        const name = req.body.productName;
        const price = req.body.productPrice;
        const desc = req.body.productDescription;
        const isHome = req.body.isHome == "on" ? 1 : 0;
        const isActive = req.body.isActive == "on" ? 1 : 0;
        try {
            await db.execute("UPDATE `nodedb`.`products` SET `name`=?,`price`=?,`img`=?,`desc`=?,`isHome`=?,`isActive`=? WHERE (`id`=?);",
                [name, price, productImg, desc, isHome, isActive, id]);
            res.redirect('/admin/products?action=edit');
        } catch (err) {
            console.log(err);
            res.status(500).send('İşlem sırasında bir hata oluştu.');
        }
    });
    dene bakalım bi
    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
        at new NodeError (node:internal/errors:399:5)
        at ServerResponse.setHeader (node:_http_outgoing:645:11)
        at ServerResponse.header (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:794:10)
        at ServerResponse.location (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:915:15)
        at ServerResponse.redirect (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:953:18)
        at C:\Users\user\Desktop\nodejs\routes\admin.js:44:13
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
      code: 'ERR_HTTP_HEADERS_SENT'
    }
    [Error: EBUSY: resource busy or locked, unlink 'C:\Users\user\Desktop\nodejs\public\imgs\products\1-1696167288120.jpg'] {
      errno: -4082,
      code: 'EBUSY',
      syscall: 'unlink',
      path: 'C:\\Users\\user\\Desktop\\nodejs\\public\\imgs\\products\\1-1696167288120.jpg'
    }
    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
        at new NodeError (node:internal/errors:399:5)
        at ServerResponse.setHeader (node:_http_outgoing:645:11)
        at ServerResponse.header (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:794:10)
        at ServerResponse.location (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:915:15)
        at ServerResponse.redirect (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:953:18)
        at C:\Users\user\Desktop\nodejs\routes\admin.js:44:13
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
      code: 'ERR_HTTP_HEADERS_SENT'
    }
  • 01-10-2023, 16:53:29
    #4
    en4loss adlı üyeden alıntı: mesajı görüntüle
    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
        at new NodeError (node:internal/errors:399:5)
        at ServerResponse.setHeader (node:_http_outgoing:645:11)
        at ServerResponse.header (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:794:10)
        at ServerResponse.location (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:915:15)
        at ServerResponse.redirect (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:953:18)
        at C:\Users\user\Desktop\nodejs\routes\admin.js:44:13
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
      code: 'ERR_HTTP_HEADERS_SENT'
    }
    [Error: EBUSY: resource busy or locked, unlink 'C:\Users\user\Desktop\nodejs\public\imgs\products\1-1696167288120.jpg'] {
      errno: -4082,
      code: 'EBUSY',
      syscall: 'unlink',
      path: 'C:\\Users\\user\\Desktop\\nodejs\\public\\imgs\\products\\1-1696167288120.jpg'
    }
    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
        at new NodeError (node:internal/errors:399:5)
        at ServerResponse.setHeader (node:_http_outgoing:645:11)
        at ServerResponse.header (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:794:10)
        at ServerResponse.location (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:915:15)
        at ServerResponse.redirect (C:\Users\user\Desktop\nodejs\node_modules\express\lib\response.js:953:18)
        at C:\Users\user\Desktop\nodejs\routes\admin.js:44:13
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
      code: 'ERR_HTTP_HEADERS_SENT'
    }
    kodun farklı biyerinde hata var anydesk salarsanız yardımcı olayım