Localhost tarafında çalışan kod yayınlandığı zaman çalışmıyor

mertjr

Başarılı
Katılım
24 Şubat 2024
Mesajlar
381
Beğeniler
205
Nodemailer kullanarak bir başvuru formu hazırlamıştım kendi localhost tarafımda çalışıyor fakat yayınladığım zaman formu gönderdiğimde hata veriyor

Hata:
404 - Dosya veya dizin bulunamadı.
Aradığınız kaynak kaldırılmış, adı değiştirilmiş veya geçici olarak erişime kapalı olabilir.
Bir şeyleri mi gözden kaçırıyorum vs diyorum ama port numarasında mı sorun oluyor acaba hosting sağlayıcım ile mi konuşmam gerek?

[CODE lang="javascript" title="Nodemailer.js"]const nodemailer = require("nodemailer");
const multer = require("multer");
const fs = require("fs");
const bodyParser = require("body-parser");
const express = require("express");
require("dotenv").config();

const app = express();
const PORT = process.env.PORT || 5000;

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

const Storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, "./images");
},
filename: function (req, file, callback) {
const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
callback(
null,
file.fieldname + "" + uniqueSuffix + "" + file.originalname
);
},
});

const upload = multer({ storage: Storage }).single("image");

app.use(express.static("public"));

app.get("/", (req, res) => {
res.sendFile(__dirname + "/public/staj-basvuru-formu.html");
});

app.post("/sendemail", (req, res) => {
upload(req, res, function (err) {
if (err) {
console.log(err);
return res.status(500).send("Bir hata oluştu");
} else {
const from = req.body.email;
const to = "***@gmail.com";
const subject = Staj Başvuru Formu - ${req.body.isim};
const body = `
İsim: ${req.body.isim}
Mail: ${req.body.email}
Telefon: ${req.body.telefon}
Staj Konusu: ${req.body.stajKonusu}
Staj Süresi: ${req.body.stajSuresi}
Staj Dönemi: ${req.body.stajDonemi}
Staj Dönemi ile ilgili Görüş/Mesaj: ${req.body.comment}
`;
const filePath = req.file.path;

const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});

const mailOptions = {
from: from,
to: to,
subject: subject,
text: body,
attachments: [
{
path: filePath,
},
],
};

transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log("Error:", error);
return res.status(500).send("Mail gönderilemedi");
} else {
console.log("Email sent:", info.response);

fs.unlink(filePath, function (err) {
if (err) {
console.log(err);
return res.status(500).send("Dosya silinemedi");
} else {
console.log("Dosya silindi");
return res.redirect("/staj-form-tamamlandi.html");
}
});
}
});
}
});
});

app.listen(PORT, () => {
console.log(Sunucu ${PORT} numaralı portta çalışıyor.);
});
[/CODE]
 
/public/staj-basvuru-formu.html
/staj-form-tamamlandi.html

Bunun gibi dosyalar belirtilen yollarda bulunuyor mu? Eksiklik var mı? Hostingin Node.js desteklemesi gerekli tabii.
 
Dosya yollarında bir sıkıntı yok çok fazla kontrol ettim de hostingin Node desteklediğini bilmiyorum. Sormam mı lazım bir yerde yazıyor mudur? hosting.com.tr'den almıştım.
 
Dosya yollarında bir sıkıntı yok çok fazla kontrol ettim de hostingin Node desteklediğini bilmiyorum. Sormam mı lazım bir yerde yazıyor mudur? hosting.com.tr'den almıştım.
Destek kısmından sorabilirsiniz. Paylaşımlı hostingler genelde desteklemiyor.
 
Destek kısmından sorabilirsiniz. Paylaşımlı hostingler genelde desteklemiyor.

Müşterimin de ayrı bir Hosting'i var onda da çalışmıyor çünkü aynı hatayı veriyor. Ama localhost tarafında kusursuz şekilde çalışıyor umarım hostinglik bir durumdur
 
Paylasimli hostingler genelde PHP destekliyor backend olarak. NodeJS Express backendi çalıştıracaksanız VPS alip orada kurman gerekebilir. NodeJS desteğini hostingden sorun.
 
Plesk kullanıyorum her hangi bir ayar yapmadım henüz
 
İfadeler: 001
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…