Bài 14: Kết nối csdl mysql

  • Bước 1: Tải và cài đặt thư viện mysql trên npm

1

  • Bước 2: Kết nối csdl và thực hiện 1 truy vấn

var mysql = require('mysql');

//Kết nối csdl
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'nodedb'
});

connection.connect();

connection.query('SELECT * FROM sinhvien WHERE MSSV = 01', function(error, result, fields){
    if (error) throw error;
    console.log(result[0].NAME);
});

connection.end();

 

Bài 13: Express framwork

  • Tải và cài đặt express framwork

    • Dùng lệnh: npm i express –save
  • Tạo web server đơn giản

const express = require("express");
const app = express();
const port = 3000;

//Tạo server lắng nghe
app.listen(port, () =>{
    console.log("Server listening on port ", port);
});

//Định tuyến
app.get('/', (req, res) => {
    res.send("

Hello Work

);
});

Kết quả:

1

  • Sử dụng middleware

    • Middleware là thành phần nằm giữa request và response, chúng ta có thể sử dụng nhiều middleware và có thể sử dụng các middleware sẵn có.
    • Tạo file style.css trong thư mục public
h1 {
    color: green;
}

Trong file app.js

const express = require("express");
const app = express();
const port = 3000;

//Tạo server lắng nghe
app.listen(port, () =>{
    console.log("Server listening on port ", port);
});

//Sử dụng middleware để trả về file cho trình duyệt có thể tải được
app.use('/assets', express.static(__dirname+"/public"));

//Định tuyến
app.get('/', (req, res) => {
    res.send(`
    //Cho phép download ở đây
    <link href='/assets/style.css' rel='stylesheet' type='text/css'>
    <h1>Hello Work</h1>
    `);
});

//user/id
app.get('/user/:id', (req, res) => {
    res.send(`<h1>User: ${req.params.id}</h1>`);
});

Bài 12: Chương trình quản lý thư viện npm

1

var _ = require("lodash");

//Tạo mảng users
var users = [
    {'user': 'Hoa', 'age': 20},
    {'user': 'Mai', 'age': 30},
    {'user': 'Hồng', 'age': 50},
    {'user': 'Cút', 'age': 100},
    {'user': 'Phượng', 'age': 10}
]

//Lấy danh sánh các user có tuổi lớn hơn 50
var user = _.filter(users, function(user){
    return user.age > 50;
});

console.log(user);

Kết quả: [ { user: ‘Cút’, age: 100 } ]

  • Một số thư viện tiện ích

    • nodemon: Là thư viện lắng nghe sự thay đổi của server, nếu có thay đổi thì nodemon tự động khởi động lại server
    • Cài đặt nodemon ở gobal: $ npm install -g nodemon

1

Bài 11: Xây dựng web server

  • Tạo 1 web server đơn giản

var http = require("http");

//Tạo server
//request là dữ liệu được gửi lên, respone là trả về
http.createServer(function (request, response){
    //Trả về cho trình duyệt
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("Hello Web from node JS");
}).listen(3333, "127.0.0.1");
  • Trả về template html

    Tạo file html


    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    Hello NodeJS
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    


    

Hello {user}

 


Trong app.js

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

//Tạo server
//request là dữ liệu được gửi lên, respone là trả về
http.createServer(function (request, response){
    //Trả về cho trình duyệt
    response.writeHead(200, {"Content-Type": "text/html"});

    var html = fs.readFileSync(__dirname + "/index.html", "utf8");
    var user = "Hoa Mai";
    html = html.replace("{user}", user);

    response.end(html);
}).listen(3333, "127.0.0.1");
  • Trả về JSON

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

//Tạo server
//request là dữ liệu được gửi lên, respone là trả về
http.createServer(function (request, response){
    //Trả về cho trình duyệt
    response.writeHead(200, {"Content-Type": "text/html"});

    //Trả về JSON
    var user = {
        firstName: "Hoa",
        lastName: "Mai"
    };
    response.end(JSON.stringify(user));
}).listen(3333, "127.0.0.1");

 

Bài 10: Đọc file và xử lý stream trong NodeJS

  • Có 2 cách đọc file

    • Cách 1: Đọc file đồng bộ, nghĩa là khi đọc phải đợi hoàn tất mới đọc được file thứ 2
    • Cách 2: Đọc file không đồng bộ, nghĩa là có thể đọc 2 file cùng 1 lúc và kết quả sẽ trả về tùy theo thời gian đọc nhanh hay chậm.
var fs = require("fs");

//Đọc file đồng bộ
var content = fs.readFileSync(__dirname+"/readme.txt", "utf8");
console.log(content);

//Đọc không đồng bộ
fs.readFile(__dirname+"/readme.txt", "utf8", function (error, data){
    console.log(data);
});
  • Đọc và ghi file stream

var fs = require("fs");

//Đọc file
var readable = fs.createReadStream(__dirname + "/readme.txt", {
    encoding: "utf8",
    highWaterMark: 16*1024
});

//Ghi file
var writable = fs.createWriteStream(__dirname + "/writeme.txt");

readable.on("data", function(chunk){
    console.log(chunk.length);
    writable.write(chunk);
});
  • Đọc và nén file với kỹ thuật pipe

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

//Đọc file
var readable = fs.createReadStream(__dirname + "/readme.txt", {
    encoding: "utf8",
    highWaterMark: 16*1024
});

//Ghi file
var writable = fs.createWriteStream(__dirname + "/writeme.txt");
var compress = fs.createWriteStream(__dirname + "/readme.txt.gz");

var gzip = zlib.createGzip();

//Đọc và ghi vào file writeme
readable.pipe(writable);

//Nén lại thành file readme.txt.gz
readable.pipe(gzip).pipe(compress);