Nút api thô sơ

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

Nội dung chính Hiển thị

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 Nút API. js REST thực hiện các CRUD active trên cơ sở dữ liệu trong SQL Server

API kiến ​​trúc

Cài đặt

Để bắt đầu, hãy mở 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/vi/tải xuống/

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ài đặt, hãy xem cài đặt mã VS từ đây. https. //mã số. Visual Studio. 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

Configure SQL Server

Chúng tôi sẽ sử dụng SQL Server để lưu trữ dữ liệu. To connect node Node. js và SQL Server trên bộ 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 cấu hình chéo trên máy Windows, hãy nhấn Windows Key + R và nhập lệnh Compmgmt. msc to open window Quản lý máy tính. Phím Windows + R và gõ lệnh compmgmt. msc để mở cửa sổ Computer Management

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 chắc chắn 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, Open SQL Server Management Studio and run command

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 và local_tcp_port

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

You have to two this value in Node. js to connect with SQL Server cơ sở dữ liệu. Để 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. 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 dự án, hãy tạo một thư mục trống và thay đổi thư mục thành thư mục đó. In the command directory run

npm init -y

Lệnh này sẽ tạo gói tệp. json with default value in project directory. Mở thư mục dự án trong mã VS và sửa đổi gói tệp. json as being display bên dưới. bưu kiện. 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 gói. json như hình bên dưới

{
  "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 gói tệp. json, on command, run command

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 tệp dbconfig. js và thêm mã dưới đây trong đó. thư mục con node_modules được thêm vào dự án. Tiếp theo, thêm tệp dbconfig. js và thêm đoạn mã dưới đây vào đó

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 chiếu 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 đó. trật tự. js trong dự án và đặt mã bên dưới vào đó

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 của 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 cơ sở dữ liệu hoạt động. Trong tệp này, DBConfig mô-đun và MSSQL nhập lần đầu. Chúng tôi sẽ sử dụng MSSQL để kết nối với SQL Server từ Node. thao tác jsdb. 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, trước tiên hãy nhập các mô-đun dbconfig và mssql. Chúng tôi sẽ sử dụng mssql để kết nối với Máy chủ SQL từ Nút. js

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

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

________số 8

In the function 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. Liên kết. 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. Dựa trên phản hồi của phương thức kết nối, chúng tôi thực hiện 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 đó bao gồm 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);
  }
}

Tại đâ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 đang đượ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 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 thủ tục được lưu trữ bằng cách sử dụng phương thức nhập liệu

Set all thứ lại với nhau, dboperations. js nên có mã như hình dưới đây. hoạt động db. js nên có mã 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
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ó. Add a file call is API. js trong dự án và đặt mã dưới đây vào đó. api. js trong dự án và đặt đoạn mã dưới đây vào đó

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ọ, tôi còn nhập mô-đun DBoperations. Ngoài ra, chúng tôi đang mã hóa URL và 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 API trực tuyến. Đầu tiên, hãy cấu hình phần mềm trung gian như sau

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ể thiết lập 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 rằng nó đã được kích hoạt. Để 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 tải tất cả các đơn đặt hàng. Tương tự như vậy, bạn có thể thêm một đơn đặt hàng bằng cách thực hiện các bài hoạt động 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 lại mọi thứ 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à chạy nó

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 chèn thứ tự, 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 nhập thành công hồ sơ, bạn sẽ thấy một hàng mới được đưa vào đã được trả lại

BẢNG XÁC SUẤT

Trong bài viết này, theo 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. Thank vì đã đọc