Chuyển đến nội dung chính

CƠ BẢN VỀ NODE JS.



   CƠ BẢN VỀ NODE JS.
1.    Node.js có hiệu suất cao và scalable cho hệ thống non-blocking I/O được xây dựng trên bộ máy google chrome V8 và ECMAScript.Có nghĩa rằng tất cả các hàm(function), đối tượng (object), phương thức (method) của javascript đều có hiệu lực trong nodejs.
2.    Read-Eval-Print Loop (a.k.a console) trong node.js: Sử dụng node command để vào mode console.
3.    Thực thi 1 file node. Dùng: node filename hoặc dung inline :  $ node -e "console.log(new Date());"
4.    Thông tin về 1 node process: Mỗi nodejs script chạy trên 1 process của nó.Ví dụ: node -e "console.log(process.pid)"
5.    Truy cập toàn cục trong nodejs.
6.    Xuất nhập mô đun trong nodejs: Trên trình duyệt javascript không thể include 1 mô đun. Trong khi nodejs có thể làm được điều này. Vì nó mượn rất nhiều từ CommonJS.Để xuất một đối tượng trong nodejs dung: exports.name = object;
Import 1 script dung: var messages = require(‘./routes/messages.js’);

Trong express framwwork có cách khác:

module.exports = function(app) {
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  return app;
}
 Và :

var app = express();
var config = require('./config/index.js');
app = config(app);
           Nếu require() gán cho 1 folder thì nó sẽ đọc file index.js mặc định.
7.    Bộ đệm trong nodejs: Buffer is a Node.js addition to four primitives (boolean, string, number and RegExp) and all-encompassing objects (array and functions are also objects) in front-end JavaScript. We can think of buffers as extremely efficient data stores. In fact, Node.js will try to use buffers any time it can, e.g., reading from file system, receiving packets over the network.   
8.    _dirname và process.cwd: _dirname là đường dẫn tới 1 file trong biến toàn cục được gọi, trong kih process.cwd là đường dẫn  tới process của 1 script.
9.    Những tiện ích trong tầm tay của nodejs.URL, Crypto, Path, String Decoder.
10.  Đọc và ghi file system trong nodejs. Sử dụng mô đun fs trong nodejs. Có 2 phương thức được thiết lập: async và sync , đa số sử dụng phương thức async.
Ví dụ : đọc file:

var fs = require('fs');
var path = require('path');
fs.readFile(path.join(__dirname, '/data/customers.csv'), {encoding: 'utf-8'}, function (err, data) {
  if (err) throw err;
  console.log(data);
});

Ghi vào file:
var fs = require('fs');
fs.writeFile('message.txt', 'Hello World!', function (err) {
  if (err) throw err;
  console.log('Writing is done.');
});
11.  Luồng dữ liệu trong nodejs: Tiến trình ứng dụng vẫn thực thi trong khi nó vẩn đang nhận dữ liệu , nó hữu dụng trong dataset cực lớn như video hay việc di trú dữ liệu.
Ví dụ:
var fs = require('fs');
fs.createReadStream('./data/customers.csv').pipe(process.stdout);

By default, Node.js uses buffers for streams.
12.  Cài node mô đun dung npm: Chúng ta cần file package.json hoặc  thư mục node_modules
Cài đặt mô đun locally: npm install modulename
NPM giữ các mô đun local 1 cách độc lập.Nên 1 mô đun có thề có 2 version khác nhau.
13.  “hello world” với mô đun http trong nodejs.
Ví dụ:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');]

14.  Debug trong nodejs. Cách tốt nhất là console.log() hoặc : node debug program.js hoặc dung interface than thiện : https://github.com/node-inspector/node-inspector
15.  Callbacks trong nodejs.Callbacks có thể trong mã code async trong nodejs.

fs.readdir(source, function(err, files) {
  if (err) {
    console.log('Error finding files: ' + err)
  } else {
    files.forEach(function(filename, fileIndex) {
      console.log(filename)
      gm(source + filename).size(function(err, values) {
        if (err) {
          console.log('Error identifying file size: ' + err)
        } else {
          console.log(filename + ' : ' + values)
          aspect = (values.width / values.height)
          widths.forEach(function(width, widthIndex) {
            height = Math.round(width / aspect)
            console.log('resizing ' + filename + 'to ' + height + 'x' + height)
            this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) {
              if (err) console.log('Error writing file: ' + err)
            })
          }.bind(this))
        }
      })
    })
  }



Nhận xét

Bài đăng phổ biến từ blog này

Cách sử dụng sys.argv trong python.

Cách sử dụng sys.argv trong python.

sys.argv là môt danh sách [list] trong python, nó được sư dụng khi bạn chạy một lệnh command-line nào đó trên hệ thống.
Và argument này được đẩy vào script python để thực thi khi chạy câu lệnh.

Ví dụ: python sys.argv arg1 arg2

Trước tiên bạn phải import mô đun sys trong script.



import sys print"This is the name of the script: ", sys.argv[0]print"Number of arguments: ", len(sys.argv)print"The arguments are: ", str(sys.argv)

Tên của script này : sysargv.py
Số lượng arg là : 1
Arg là : ['sysargv.py']


python test1020.py 111 This is the name of the script:  test1020.py
Number of arguments:  2
The arguments are:  ['test1020.py', '111']

Thiết kế một RESTful API bằng python và flask.

Như các bạn đã biết thì REST viết tắt bởi REpresentational State Transfer. Bạn có thể tham khảo thêm ở đây.

Vậy REST là gì:

Có 6 yếu tố của REST như sau:

1. Client-Server: phía server side phục vụ như một service còn phía client sẽ dùng service này.

2.Stateless:  Mỗi request từ client phải chứa tất cả các thông tin mà phía server yêu cầu phải có. Nói nôm na là mỗi request chứa các thông tin riêng rẽ không liên quan đến những request khác.

3. Cacheable : Phía server side phải cảnh báo chỉ ra cho client side biết là request đó có cache hay không.

4. Hệ thống phân lớp: Giao tiếp giữa server side và client side có thể thông qua lớp trung gian ở giữa để trả lời các request được gọi mà không cân phía client phải làm những động tác khác nữa.

5. Các cổng giao tiếp là giống nhau : Các phương thức giao tiếp giữa client và server là khuôn mẫu giống nhau.

6. Mã code linh động. Phía server có thể thực thi cho môt API gọi duy nhất mà không ảnh hưởng tới các API khác.

RESTful web service là gì :

Kiế…

Cài đặt docker trên windows server 2016.

1. Cài đặt Windows Server 2016 Container Feature:  Mở PowerShell : Cài đặt các container feature dùng powershell: Dùng lệnh: InstallWindowsFeature containers Restart lại windows: 2. Cài đặt windows server 2016 base image:  Cài đặt mô đun : ContainerImage Dùng lệnh: Install-PackageProvider ContainerImage -force List các image có giá trị: Cài đặt Windows Server Core : 3. Cài đặt docker trên windows server 2016. Download script để cài đặt docker : Chạy script : Kiểm tra các image có trên server :