NodeJS kết nối database MS SQL Server

Chuẩn bị đồ nghề

Chạy lệnh sau để tạo một webapp hello-mssql :

$mkdir helloworld && cd hello-mssql && npm init -y && npm install express && touch index.js

Copy đoạn code sau vào file index.js

const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello MS SQL!'))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))

Run $node index.js

Chi tiết có thể xem thêm ở đây.

Bắt đầu nấu nướng

Chuẩn bị một database SQL Server: trong bài này mình sử dụng SQL Server 2014 với sample database AdventureWorks2014. Các bạn có thể download sample ở đây.

Cài đặt thư viện mssql vào ứng dụng. Thư viện này dùng để kết nối và query thông tin trong database SQL Server:

npm install mssql --save

Ghi đè nội dụng sau vào file index.js

const express = require('express')
const app = express()
const port = 3000
var sql = require('mssql');

app.listen(port, () => console.log(`Example app listening on port ${port}!`))


app.get('/', (req, res) => {
  var config = {
    user: 'sa',
    password: 'xxxxx',
    server: '192.168.1.100', 
    port:1433,
    database: 'AdventureWorks2014',
    options: {
      trustedConnection: true,
      encrypt: false
    } 
  }
  
  sql.connect(config, function (err) {

    if (err) console.log(err);
  
    // create Request object
    var request = new sql.Request();
  
    // query to the database and get the records
    request.query('SELECT TOP 10 [Name],[ProductNumber] FROM [Production].[Product]', function (err, recordset) {
      sql.close()

      if (err) {
        res.send(err)
      }
        
      res.send(JSON.stringify (recordset))
    })
  })
})

Save and run $node index.js

Vào Chrome chạy và test thử http://localhost:3000

Gender Detection API

Gender Detection API là gì?

Gender Detection API là một rest API để xác định giới tính dựa vào tên của người Việt. API này giúp tạo ta những form tự động điền giới tính. Thử tưởng tượng khi bạn lập trình một form nhập liệu, trong đó có trường “Họ và tên” và “Giới tính”. Nếu có một công cụ nào đó khi khách hàng của bạn chỉ cần nhập họ và tên, hệ thống tự detect ra giới tính tương ưng, việc này giúp giảm thiểu thời gian cho khách hàng của bạn rất nhiều, giúp tăng cường UI/UX ứng dụng của bạn.

Link

http://khangle.tech

Cách sử dụng

  • Sử dụng lệnh Curl
    $ curl -X POST "http://khangle.tech/gender" -H "accept: */*" -H "Content-Type: application/json" -d "{\"fullName\":\"Trương Thị Thanh Bình\"}"
  • Sử dụng Postman

ExpressJS trên Docker

Cài đặt Docker

Xem cách cài đặt Docker ở đây

Tạo một NodeJS App

Xem cách tạo ứng dụng helloworld với ExpressJS ở đây

Tạo một image Docker

Trước hết ta tạo một file Dockerfile trống bằng câu lệnh

$touch Dockerfile

Copy nội dung sau vào file này:

FROM node:8.12.0-jessie
# Create app directory
WORKDIR /usr/src/app
# Bundle app src
COPY . .
# Install app dependencies
RUN npm install
EXPOSE 3000
CMD [ "node", "index.js" ]

Ý nghĩa:

  • Dòng FROM node:8.12.0-jessie chỉ ra rằng chúng ta muốn build từ image nào, ở đây mình dùng image 8.12.0-jessie có NodeJS version 8.12.0 LTS. Khi mình chạy lệnh build nó sẽ vào Docker Hub để lấy image này về để cho chúng ta thêm phần của mình vào .
  • Dòng WORKDIR /usr/src/app là nơi chứa code của chúng ta trong image.
  • Dòng COPY . . copy toàn bộ source của project vào trong image.
  • Dòng RUN npm install download các dependencies.
  • Dòng EXPOSE 3000 vì helloworld listen ở cổng 3000 nên ta sẽ EXPOSE ra tại cổng 3000.
  • Dòng cuối cùng CMD [ "node", "index.js" ] dùng CMD để chạy app.

Build image

Sử dụng câu lệnh sau

$docker build --rm -f Dockerfile -t helloworld:latest .

Nhớ có dấu . sau cùng nhen! Dấu . ở đây ám chỉ Dockerfile đang nằm trong thư mục hiện tại.

Sau khi nhấn ENTER, nó vào Internet pull image gốc về như hình

Sau khi chạy xong chạy lệnh kiểm tra xem nó đã tạo ra image chưa

$docker images

Run image

$docker run --rm -d -p 3000:3000 helloworld:latest

Rồi kiểm tra process bằng $docker ps

Vào Chrome chạy và test thử http://localhost:3000

Nếu màn hình xuất hiện chữ “Hello World!” là done. Congratulation!

Tạo webapp Helloworld với ExpressJS

Yêu cầu đầu tiên cần phải setup NodeJS. Xem ở đây

Tếp theo là phải nghỉ ra cái tên cho webapp của mình. Ở đây mình đặt tên là helloworld.

Mở Terminal (giao diện dòng lệnh) ra gõ những dòng lệnh sau:

$mkdir helloworld
$cd helloworld

Chạy lệnh npm init để tạo ra file package.json trong folder helloworld. Xem thêm đặc tả package.json

$npm init

Khi chạy lệnh này nó sẽ hỏi một vài câu hỏi những câu trả lời của bạn sẽ được ghi vào nội dung của package.json. Đơn giản là cứ nhấn Enter. Mình còn có cơ hội chỉnh sữa lại sau.

Tiếp đến là install Express, chạy lệnh sau:

$npm install express --save

Đợi một vài phút để npm kéo module về.

Chạy lệnh sau để tạo file index.js

$touch index.js

Copy nội dung sau vào file index.js. Để tiện lập trình trong NodeJS, các bạn nên dùng một editor, mình dùng Visual Code của Microsoft, download ở đây.

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

Cuối cùng, chạy lệnh sau để start cái web của bạn

$node index.js

Nếu thành công thì nó sẽ báo Example app listening on port 3000!

Mở browser vào địa chỉ http://localhost:3000/ Nếu nó xuất hiện chữ “Hello World” chúc mừng bạn đã thành công.

Tất cả các lệnh trên, các bạn có thể gom thành một lệnh duy nhất như sau:

$mkdir helloworld && cd helloworld && npm init -y && npm install express && touch index.js

Đây là cách cơ bản nhất, ngoài ra còn nhiều cách khác nữa. Thế giới NodeJS muôn hình vạn trạng!!!

Cài đặt Node.js

Để cài đặt Node bạn hãy vào trang https://nodejs.org/en/download/ tìm phiên bản thích hợp với hệ điều hành của bạn và cài đặt như ứng dụng bình thường

Nâng cao hơn 1 chút bạn có thể cài đặt nodejs qua thư viện nvm https://github.com/creationix/nvm . Thư viện này giúp bạn cài đặt và quản lý nhiều phiên bản nodejs trên cùng 1 máy . Với người dùng window bạn có thể dùng nvm-windows https://github.com/coreybutler/nvm-windows

Nếu cài đặt nodejs qua nvm bạn có thể tương tác dễ dàng qua CLI. Từ khi tổ chức quản lý Nodejs được thành lập vào năm ngoài với sự tham gia của Linux Foudation, nodejs bắt đầu có kế hoạch ra mắt rõ ràng. Trong kế hoạch đó các bạn sẽ thấy có 2 phiên bản nodejs : LTS và current . Phiên bản LTS là phiên bản hướng đến độ ổn định cao , ít cập nhật các tính năng mới es6 , chỉ tập trung vào sửa lỗi bảo mật cũng như tối ưu hệ thống. Hiện nay (thời điểm viết bài này) phiên bản LTS dừng ở bản 8.12.0. Phiên bản current hay còn gọi là phiên bản experimental luôn được cập nhật liên tục tính năng mới – tốc độ nâng cấp kinh hồn luôn 😐