Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
12
Cevap
1087
Tıklama
0
Öne Çıkarma
NodeJS Kullanımı
A
8 yıl
Yüzbaşı
Konu Sahibi

Merhabalar. Bir nodeJS kodunu komut penceresinden;

node deneme.js ile çalıştırabiliyoruz. Örneğin;

use strict";  
var fs = require("fs");
fs.readdir("deneme", function (ex, files)
{
if (ex) {
console.log(ex);
} else {
console.log(files);
}
})
;


kodu ile bir klasördeki dosyaların isimlerini listeliyor.

Benim sorum, bu js dosyasını html dosyası içinden nasıl çalıştıracağız? Yani deneme.html yazınca tarayıcıda klasördeki dosya isimleri görünsün istiyorum.

O isimleri elde ettiğim zaman <img src ile resimleri görüntüleyeceğim. Amacım bu.



S
8 yıl
Yarbay

Öncelikle node.js içerisinde Http Server oluşturman gerekiyor. Diyelim ki oluşturduğun bu server da 99 nolu porttan çalışıyor.


var http = require("http");
var server = http.createServer();
server.on('request', request);
server.listen(99);

function request(request, response) {
response.end("node.js server testi!");
};


"deneme.html" içerisinden bir AJAX isteğiyle http://localhost:99/ adresine istekte bulunman yeterli.


$.ajax({
url: 'http://localhost:99',
crossDomain: true,
}).done(function(data) {
console.log("node.js'den geri dönen cevap: " + data);
});





< Bu mesaj bu kişi tarafından değiştirildi snoppy -- 6 Şubat 2017; 22:15:17 >
Bu mesaja 1 cevap geldi.
A
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: snoppy

Öncelikle node.js içerisinde Http Server oluşturman gerekiyor. Diyelim ki oluşturduğun bu server da 99 nolu porttan çalışıyor.


var http = require("http");
var server = http.createServer();
server.on('request', request);
server.listen(99);

function request(request, response) {
response.end("node.js server testi!");
};


"deneme.html" içerisinden bir AJAX isteğiyle http://localhost:99/ adresine istekte bulunman yeterli.


$.ajax({
url: 'http://localhost:99',
crossDomain: true,
}).done(function(data) {
console.log("node.js'den geri dönen cevap: " + data);
});


Böyle mi olacak?
klasoroku.js
"use strict"; 
var fs = require("fs");
fs.readdir("deneme", function (ex, files)
{
if (ex) {
console.log(ex);
} else {
console.log(files);
}
});
var http = require("http");
var server = http.createServer();
server.on('request', request);
server.listen(2000,"127.0.0.1");

function request(request, response) {
response.end("node.js server testi!");
};



klasoroku.html
<html> 
<body>
<script type="text/javascript">
$.ajax({
url: 'http://localhost:2000',
crossDomain: true,
}).done(function(data) {
//console.log("node.js'den geri dönen cevap: " + data);
document.write("Gelen veri:" + data);
});
</script>
</body>
</html>



A
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: snoppy

Klasör okuma işlemini "request" fonksiyonu içerisinde yapacaksın.

 
var fs = require("fs");
var http = require("http");

var server = http.createServer(function(request, response) {

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader('Access-Control-Request-Method', '*');
response.setHeader('Access-Control-Allow-Methods', 'GET');
response.setHeader('Access-Control-Allow-Headers', '*');

fs.readdir('./muzikler/turkce/', function(error, data) {
if (error) {
throw error;
}
response.end(data.toString());
});

});

server.listen(2000);


Hocam bu haliylehttp://127.0.0.1:2000 yazdığımda dosya isimlerini tarayıcıya yazıyor. Ancak ben dosya isimlerini bir dizide tutup, daha sonra random olarak bir kaç tanesini img etiketi ile görüntüleyeceğim. Bu nedenle bu dosya isimlerini html sayfasına nasıl gönderirim. Orada da java script içinde işlem yapmam lazım sanırım. Sonuçta kişi bu sayfayı görüntülerkenhttp://sddfsdfsdgf.com/oku.js değil, ....../oku.html olarak görüntüleyecek.



A
8 yıl
Yüzbaşı
Konu Sahibi

Aşağıdaki kod ile dediğim işi yaptım. Sayfa her yenilendiğinde, bir klasördeki 5 resim random alınıyor ve img ile gösteriliyor. Çok teşekkürler.

Son bir şey var. Ben bu resimlere nasıl link veririm. Ama şöyle olacak. Mesela resim dosyanın adı deneme1.jpg olsun. link:http://www.deneme1.com olacak. Yani link adresi resim adı olacak.


<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
// verilen diziyi karıştıran fonksiyon
function shuffle(a)
{
var j, x, i;
for (i = a.length; i; i--)
{
j = Math.floor(Math.random() * i);
x = a[i - 1];
a[i - 1] = a[j];
a[j] = x;
}
return a;
}
</script>
</head>
<body>
<script type="text/javascript">
$.ajax({
url: 'http://localhost:2000',
crossDomain: true,
}).done(function(data) {
// node.js'den geri dönen cevabı diziye dönüştürüyorum
data = data.split(',');
data = shuffle(data);
//$('#dizinIcerik').html(data.length);
var uz=data.length-1;
var resimler = new Array(uz);
var x=0;
do
{
var indis = Math.round(Math.random()*uz);
//$('#dizinIcerik').html(indis);
if(data[indis]!='Thumbs.db')
{
resimler[x]='firmalar/' + data[indis];
x=x+1;
}
} while(x<5);
var myImg1 = $('#res1');
myImg1.attr('src', resimler[0]);

var myImg2 = $('#res2');
myImg2.attr('src', resimler[1]);

var myImg3 = $('#res3');
myImg3.attr('src', resimler[2]);

var myImg4 = $('#res4');
myImg4.attr('src', resimler[3]);

var myImg5 = $('#res5');
myImg5.attr('src', resimler[4]);
});
</script>
<img id="res1" name="res1" width="100" height="50" />
<img id="res2" name="res2" width="100" height="50" />
<img id="res3" name="res3" width="100" height="50" />
<img id="res4" name="res4" width="100" height="50" />
<img id="res5" name="res5" width="100" height="50" />
</body>
</html>





< Bu mesaj bu kişi tarafından değiştirildi ayhan_sr -- 12 Şubat 2017; 23:55:41 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.