Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Tìm hiểu để xây dựng API REST trong Node.js thực hiện các hoạt động đọc và ghi trên cơ sở dữ liệu trong SQL Server.

Trong bài viết này, chúng tôi sẽ thực hiện một cách tiếp cận từng bước để giúp bạn xây dựng API REST trong Node.js thực hiện các hoạt động đọc và ghi trên cơ sở dữ liệu trong SQL Server.

Vào cuối bài viết này, bạn sẽ có thể tạo API Node.js REST thực hiện các hoạt động CRUD trên cơ sở dữ liệu trong SQL Server.

Kiến trúc API

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Cài đặt

Để bắt đầu, hãy mở dấu nhắc lệnh và chạy lệnh:

node -v

Lệnh trên sẽ trả về phiên bản Node.js được cài đặt trên máy của bạn. Nếu nó không trả về một phiên bản, hãy cài đặt Node.js từ đây: https://nodejs.org/en/doad/.

Sau khi cài đặt, một lần nữa chạy lệnh trên để xác minh cài đặt thành công của Node.js. Ngoài ra, chúng tôi sẽ sử dụng mã VS để phát triển, vì vậy nếu chưa được cài đặt, hãy xem xét cài đặt mã VS từ đây: https://code.visualstudio.com/doad.

Để kiểm tra API, chúng tôi sẽ sử dụng Telerik Fiddler ở khắp mọi nơi. Tải xuống và cài đặt nó từ đây.

Định cấu hình SQL Server

Chúng tôi sẽ sử dụng SQL Server làm lưu trữ dữ liệu. Để kết nối nút Node.js và SQL Server trên máy cục bộ, bạn cần đảm bảo về các cấu hình cụ thể. Vì vậy, để kiểm tra chéo cấu hình trên máy Windows, nhấn Windows Key + R và gõ lệnh Compmgmt.msc để mở cửa sổ Quản lý máy tính.Windows key + R, and type command compmgmt.msc to open the Computer Management window.

Trong cửa sổ Quản lý máy tính, chọn Cấu hình mạng SQL Server và đảm bảo tùy chọn TCP/IP được bật.

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Khi tùy chọn TCP/IP được bật, nhấp chuột phải vào TCP/IP và chọn Thuộc tính. Trong cửa sổ Thuộc tính, hãy đảm bảo rằng cổng được đặt thành 1433.1433.

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Tiếp theo, Mở SQL Server Management Studio và chạy lệnh:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null

Nó sẽ trả về local_net_address và local_tcp_port.local_net_address and local_tcp_port.

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Bạn cần hai giá trị này trong Node.js để kết nối với cơ sở dữ liệu SQL Server. Để tạo API, chúng tôi đã tạo một cơ sở dữ liệu đơn hàng với các quy trình được lưu trữ.

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Lược đồ bảng đặt hàng trông như thế này:

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Chúng tôi sẽ thực hiện các hoạt động đọc và viết trên bảng trên. Bên cạnh các cấu hình trên, lưu ý tên phiên bản SQL Server và thông tin người dùng SQL.

Tạo dự án API

Để tạo một dự án, hãy tạo một thư mục trống và thay đổi thư mục thành đó. Trong thư mục chạy lệnh:

npm init -y

Lệnh này sẽ tạo tệp gói.json với các giá trị mặc định trong thư mục dự án. Mở thư mục dự án trong mã VS và sửa đổi tệp gói.json như được hiển thị bên dưới.package.json file with default values in the project folder. Open the project folder in VS Code, and modify package.json file as shown below.

{
  "name": "nodeapi",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start":"nodemon api.js"
  },
  "dependencies": {
    "body-parser": "~1.0.1",
    "cors": "2.8.1",
    "express": "~4.0.0",
    "mssql": "^6.2.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.4"
  },
  "keywords": [],
  "author": "Dhananjay Kumar <> (https://debugmode.net)",
  "license": "ISC"
}

Sau khi cập nhật tệp Gói.json, trên lệnh nhắc lệnh, hãy chạy lệnh:

npm install

Sau khi cài đặt thành công, bạn sẽ tìm thấy thư mục con Node_Modules được thêm vào dự án. Tiếp theo, thêm một tệp dbconfig.js và thêm mã dưới đây trong đó.node_modules subfolder added to the project. Next, add a file dbconfig.js, and add the below code in it.

const  config = {
  user:  'foo', // sql user
  password:  'foo', //sql user password
  server:  '127.0.0.1', // if it does not work try- localhost
  database:  'Products',
  options: {
    trustedconnection:  true,
    enableArithAbort:  true,
    instancename:  'SQLEXPRESS'  // SQL Server instance name
  },
  port:  55892
}

module.exports = config;

Tệp trên chứa cấu hình để kết nối với SQL Server. Đối với bạn, số cổng có thể khác, mà bạn đã lưu ý trong bước trước.

Tiếp theo, chúng tôi sẽ tạo một lớp để đại diện cho bảng thứ tự. Đối với điều đó, thêm một đơn đặt hàng tệp.js trong dự án và đặt mã bên dưới đó.order.js in the project and put below code in that.

class  Order{
  constructor(Id,Title,Quantity,Message,City){
    this.Id = Id;
    this.Title = Title;
    this.Quantity = Quantity;
    this.Message = Message;
    this.City = City;
  }
}

module.exports = Order;

Lớp thứ tự có các thuộc tính tương ứng với các cột bảng thứ tự. Sau này, tạo một tệp có tên DBOPERATION.js. Tệp này chứa các chức năng để thực hiện các hoạt động cơ sở dữ liệu. Trong tệp này, các mô -đun DBConfig và MSSQL đầu tiên nhập. Chúng tôi sẽ sử dụng MSSQL để kết nối với SQL Server từ Node.jsdboperations.js. This file contains functions to perform database operations. In this file, first import dbconfig and mssql modules. We are going to use mssql to connect to the SQL Server from Node.js

var  config = require('./dbconfig');
const  sql = require('mssql');

Bạn có thể tìm nạp tất cả các đơn đặt hàng từ bảng đặt hàng như hình dưới đây:

async  function  getOrders() {
  try {
    let  pool = await  sql.connect(config);
    let  products = await  pool.request().query("SELECT * from Orders");
    return  products.recordsets;
  }
  catch (error) {
    console.log(error);
  }
}

Trong chức năng GetTorders:

  1. Chúng tôi đang kết nối với cơ sở dữ liệu bằng phương thức SQL.Connect. Phương pháp này chấp nhận đối tượng cấu hình cơ sở dữ liệu và trả về một lời hứa.
  2. Trên phản hồi của phương thức kết nối, chúng tôi thực thi truy vấn.
  3. Trong truy vấn, chúng tôi đang vượt qua truy vấn SQL để được thực thi.
  4. Chúng tôi đang trả lại các bản ghi của kết quả truy vấn, trong đó chứa các bản ghi từ bảng trong một mảng.

Theo cách tương tự, bạn có thể lấy một đơn đặt hàng cụ thể như hình dưới đây:

async  function  getOrder(productId) {
  try {
    let  pool = await  sql.connect(config);
    let  product = await  pool.request()
    .input('input_parameter', sql.Int, productId)
    .query("SELECT * from Orders where Id = @input_parameter");
    return  product.recordsets;
  }
  catch (error) {
    console.log(error);
  }
}

Ở đây bạn cần chuyển phương thức đầu vào để vượt qua tham số đầu vào. Bạn có thể chèn một bản ghi bằng cách thực thi truy vấn chèn hoặc gọi một thủ tục được lưu trữ, như được hiển thị trong danh sách mã dưới đây.

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
0

Ở đây, Insertorder là tên của thủ tục được lưu trữ. Ngoài ra, chúng tôi đang chuyển tất cả các tham số cho quy trình được lưu trữ bằng phương pháp đầu vào.InsertOrders is the name of the stored procedure. Also, we are passing all the parameters to the stored procedure using the input method.

Đặt mọi thứ lại với nhau, dboperations.js nên có mã như hình dưới đây:dboperations.js should have code as shown below:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
1

Tạo API

Chúng tôi sẽ sử dụng Express để tạo API REST và chúng tôi đã cài đặt nó. Thêm một tệp gọi là API.js trong dự án và đặt mã dưới đây vào đó.api.js in the project, and put the below code in it.

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
2

Chúng tôi chỉ đang nhập các mô-đun cần thiết như Express, CORS, Body-Parser. Bên cạnh họ, chúng tôi còn nhập mô -đun DBOperations. Ngoài ra, chúng tôi đang mã hóa URL và định cấu hình API để sử dụng CORS.

Tiếp theo, ở dưới cùng của tệp api.js, đặt mã dưới đây. Mã này đang định cấu hình API để nghe một cổng cụ thể.

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
3

Bây giờ, tất cả chúng ta đã được thiết lập để viết các tuyến API. Đầu tiên, định cấu hình phần mềm trung gian như dưới đây:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
4

Ngay bây giờ, nó không làm gì cả. Tuy nhiên, tuyến đường này sẽ được gọi trước bất kỳ tuyến đường nào khác và bạn có thể đặt xác thực, ủy quyền, hoạt động ghi nhật ký tại đây.

Tiếp theo, để tìm nạp tất cả các đơn đặt hàng, bạn cần thực hiện có được hoạt động. Để làm như vậy, hãy thêm một tuyến đường vào API như hình dưới đây:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
5

Trong tuyến đường này, chúng tôi đang gọi phương thức GetArd () của mô -đun DBOperations để tìm nạp tất cả các đơn đặt hàng. Tương tự, bạn có thể thêm một đơn đặt hàng bằng cách thực hiện hoạt động bài như hình dưới đây.

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
6

Ở trên, chúng tôi đang đọc thứ tự được chèn từ thân yêu cầu và chuyển nó cho chức năng Addorder và sau khi chèn thành công, trả về bản ghi mới được chèn vào trạng thái 201.

Bạn có thể lấy một đơn đặt hàng cụ thể như hình dưới đây:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
7

Ở đây OrderID được thông qua trong tham số truy vấn. Đặt mọi thứ lại với nhau, API.js với các hoạt động đọc và viết sẽ giống như bên dưới:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
8

Bây giờ chạy API bằng lệnh dưới đây:

select  distinct local_net_address, local_tcp_port from  sys.dm_exec_connections  where local_net_address is  not  null
9

Bạn sẽ nhận được một tin nhắn trong bảng điều khiển mà API đặt hàng đang chạy ở 8090. Vì vậy, cho đến nay, chúng tôi đã xây dựng API và nó chạy.

Kiểm tra API

Tiếp theo, chúng ta hãy kiểm tra API bằng Fiddler ở khắp mọi nơi. Để kiểm tra các hoạt động GET trong Fiddler ở khắp mọi nơi, hãy tạo một yêu cầu mới và vượt qua URL API như được hiển thị bên dưới:

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Bạn sẽ nhận được dữ liệu được trả về dưới dạng JSON. Để kiểm tra hoạt động thứ tự chèn, thực hiện hoạt động bài, như hình dưới đây.

Hướng dẫn nodejs sql server rest api - api máy chủ sql còn lại của nodejs

Khi chèn thành công hồ sơ, bạn sẽ tìm thấy một hàng mới được đưa vào được trả về.

Bản tóm tắt

Trong bài viết này, theo cách từng bước, bạn đã học cách tạo API dựa trên Node.js, thực hiện tạo và đọc các hoạt động trên bảng trong cơ sở dữ liệu SQL Server. Tôi hy vọng bạn thấy nó hữu dụng. Cảm ơn vì đã đọc.