Sunucu bazlı React projesi?
Merhaba arkadaşlar
Arkadaşlar bir react projesi ile sistemde veri tabanı, dosya vb. işlemler için
ek bir sunucuya ihtiyacımız var. Birleşik bir sistem var mıdır?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
nodejs, express kullanılmak istenirse. Bir önceki örnekte exec kullanmıştım. Gpt spawn önerdi.
Hem sunucu hem de react projenizi konsolda takip edebilirsiniz. exec sadece sunucu bilgilerini döküyor.
import { spawn } from "child_process";
app.use((req, res, next) => {
const origin = req.headers.origin
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
if (req.method === 'OPTIONS') {
res.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,PATCH,DELETE,OPTIONS');
// Önbelleğe alma süresi (saniye)
res.setHeader('Access-Control-Max-Age', '600');
return res.sendStatus(204);
}
next();
})
app.listen(PORT, () => {
const vite = spawn("npx", ["vite"], { stdio: "inherit", shell: true });
vite.on("close", (code) => {
console.log(`Vite kapandı (kod: ${code})`);
});
console.log(`Servers is running on http://localhost:${PORT}`);
});
Kendimce bir çözüm ürettim sadece yapılandırma aşamalarında bilmediğim teknik konularda yapay zeka yardımı aldım.
package.json
"script": {
"dev": "node ws.js"
}
ws.js
express(cors ayarına dikkat) veya ws çalıştırma dosyasına ekle.
import { WebSocketServer } from 'ws';
import { exec } from "child_process";
// 8080 portunda basit bir WebSocket sunucusu oluştur
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (ws) => {
ws.on('message', (message) => {
console.log('Mesaj alındı:', message.toString());
ws.send(`Sunucudan yanıt: ${message.toString().toUpperCase()}`);
});
ws.on('close', () => {
console.log('İstemci bağlantısı kapandı.');
});
});
// React Projesini çalıştır
exec("npx vite", (error, stdout, stderr) => {
if (error) {
console.error("Hata:", error.message);
return;
}
if (stderr) {
console.error("stderr:", stderr);
}
console.log("stdout:", stdout);
});
console.log('WebSocket sunucusu 8080 portunda çalışıyor.');