7 Eylül 2018 Cuma

node.js

async metod
Giriş
async metod kullanılmasının sebebi node.js'in sunucu için tek thread kullanması.

Örnek
Şöyle yaparız. await ile asenkron işlemin bitmesi beklenir.
async function dbQuery() {
  const MongoClient = require('mongodb').MongoClient; 
  const url = "mongodb://localhost:27017/"; 
  const db = await MongoClient.connect(url);
  const dbo = db.db("mydb");
  const result = await dbo.collection("tblData").find({}).toArray()
  return result;
}

async function doIt() {
  try {
    const res = await dbQuery();
    console.log("Records: " + res.length);
  } catch (error) {
    console.log(error);
  }
}
//
console.log("Starting...")
doIt()
console.log("Done!")
Çıktı olarak şunu alırız.
Starting...
Done!
Records: 24
Promise Sınıfı

then metodu
Örnek
Şöyle yaparız.
async function doIt() {
  return new Promise((resolve, reject) => {
    try {
          const res = await dbQuery();
          console.log("Records: " + res.length);
          resolve();
        } catch (error) {
          reject(error);
        }
  });
}

console.log("Starting...")
doIt().then(() => {
   console.log("Done!");
})
.catch(err => console.log(err))
http modülü
require
Şöyle yaparız.
var http = require('http');
createServer metodu
Örnek
Şöyle yaparız.
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('Hello, world!');
}).listen(8080);  
Örnek
Cevabı gönderdiğimiz metodu ayrı da yazabiliriz. Şöyle yaparız.
var reply = '{"payload":"..."}';

var app = function (req, res) {
  var bytes = Buffer.byteLength(reply, 'utf8');
  console.log("reply length: " + bytes);
  // non-chunked response
  res.writeHead(200, 
                {"Content-Type" : "application/json",
                 "Content-Length" : bytes });
  res.end(reply);
}
var server = http.createServer(app).listen(9001);
get metodu
Şöyle yaparız.
var url = 'http://...';
http.get(url, function(res) {
  console.log("Got response: " + res.statusCode);

  res.on("data", function(chunk) {
            console.log("BODY: " + chunk);
        });
  }).on('error', function(e) {
        console.log("Got error: " + e.message);
  });
listen metodu
Şöyle yaparız.
const https = require('https');
const fs = require('fs');

const config = {
  key: fs.readFileSync('cert/server-key.pem'),
  cert: fs.readFileSync('cert/server-crt.pem'),
  ca: fs.readFileSync('cert/ca-crt.pem'),
};

const server = https.createServer(config, ((req, res) => {
  console.log('Got request');

  res.end();
}));

server.listen(3333);
on metodu
Aldığımız veriyi şöyle yazdırırız.
http.on('data', function(d) {
  process.stdout.write(d);
}
net modulü
createServer metodu
Şöyle yaparız.
var net = require('net');

var server = net.createServer(function(socket) {    
  socket.write('Hello from server!');

  socket.on('data', function(data) {
    console.log('Server: Received: ' + data);
  });
});

server.listen(PORT);
Socket metodu
Şöyle yaparız.
var client = new net.Socket();
client.connect(PORT, HOST, () => {
    console.log('Client: Connected to server.');
    var message = JSON.stringify({ "message" : "message" }) + '\r\n';
    client.write(message, () => {
       client.write('successfully sent the message\r\n' , () => {
           console.log("We're done with the client, closing..");
           client.end();
       });
    });
});

client.on('data', function(data) {
    console.log('Client: Received data: ' + data);
    client.destroy(); /* We're done with the client now. */
});

client.on('close', function() {
    console.log('Client: Connection closed');
});


Hiç yorum yok:

Yorum Gönder