DarknessHero adlı üyeden alıntı: mesajı görüntüle
Verdiğiniz örnek için nodejs kullanmaya gerek yok tabi ama mantığı anlamanız açısından
index.html dosyası ana klasörde public içinde olması lazım
<!DOCTYPE html>
<html>
<head>
<title>Hesap Makinesi</title>
</head>
<body>
<h1>Hesap Makinesi</h1>
<label for="sayi1">Sayı 1:</label>
<input type="text" id="sayi1"><br><br>

<label for="operator">İşlem:</label>
<select id="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br><br>

<label for="sayi2">Sayı 2:</label>
<input type="text" id="sayi2"><br><br>

<button onclick="hesapla()">Hesapla</button><br><br>

<div id="sonuc"></div>

</body>
</html>

<script>
async function hesapla() {
try {
let sayi1 = parseFloat(document.getElementById('sayi1').value);
let sayi2 = parseFloat(document.getElementById('sayi2').value);
let operator = document.getElementById('operator').value;
const response = await fetch('/hesapla', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
sayi1: sayi1,
sayi2: sayi2,
operator:operator
})
});

const data = await response.json();
document.getElementById('sonuc').innerHTML = 'Sonuç: ' + JSON.stringify(data.sonuc);
} catch (error) {
console.error('Hata:', error);
}
}


</script>
hesap.js
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');

const app = express();

app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});

app.post('/hesapla', (req, res) => {
let sayi1 = parseFloat(req.body.sayi1);
let sayi2 = parseFloat(req.body.sayi2);
let operator = req.body.operator;
let sonuc;

if (operator === '+') {
sonuc = sayi1 + sayi2;
} else if (operator === '-') {
sonuc = sayi1 - sayi2;
} else if (operator === '*') {
sonuc = sayi1 * sayi2;
} else if (operator === '/') {
sonuc = sayi1 / sayi2;
}

res.json({"sonuc":sonuc});
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Sunucu ${PORT} portunda çalışıyor...`));
Klasör yapısı bu şekilde olmalı

express,path,body-parser kütüphanelerini yüklemeniz gerekli.
localhost:3000 üzerinden erişebilirsiniz.
index.html dosya olarak okunup
app.get('/'...) kısmında kullanıcıya döndürülüyor.
Javascript fonksiyonu post isteği atıyor bu hesap.js içindeki app.post('/hesapla' ...) kısmında hesaplanıp kullanıcıya sonuç döndürülüyor hesaplama fonksiyonu kullanıcıya gösterilmiyor sadece sonuç dönüyor.
Çok teşekkür ederim değerli katkılarınız için. Evet yapmak istediğim şeyi çok iyi anladınız. "Hassas kodları" dışarı göstermemek. Buradaki basit bir hesap makinesi. Velev ki hesap makinesi değil de çok hassas bir fonksiyon farz ederek örneği vermek istedim.

Aşama aşama yaptıklarımı anlatayım. Node.js kurdum ve uygulama oluşturdum.

Ardından express eklentisini kurdum Node.js'nin kendi NPM aracıyla.

Dosya ve klasör yapısını oluşturdum. index'imi public klasörüne koydum.

public/index.html dosyasını açtım. Nginx + Apache 503 hatası verdi. Sadece apache olarak değiştirdim sayfa açıldı... Açıldı ama ...


Hesapla butonu hiçbir sonuç döndürmedi.

Sukutu hayale uğradım. Bu kadar zor öğrenebileceğim aklıma gelmezdi