簡體   English   中英

將參數發送到 Rest API 用於 SQL 服務器

[英]Sending parameters to Rest API for SQL Server

我已經創建了一個 SQL 服務器,其中一個表在我可以本地訪問的服務器上包含數據。 我還在同一台服務器上創建了一個“API”來從 SQL 服務器獲取信息,以便我的 angular 應用程序可以讀取它。

At the moment, I can read the rows in the SQL server and have them displayed in my angular application, but, I want to be able to update the SQL table from my angular app (through the API).

這是我的 API ( sqlserver.js ):

var express = require('express');
var app = express();
var cors = require('cors');

app.use(cors())

app.get('/', function (req, res) {

    var sql = require("msnodesqlv8");

    // config for your database
    var config = "server=servername;Database=dataBaseName;Trusted_Connection=Yes;Driver={SQL Server Native Client 11.0}"
    const query = "SELECT * FROM tableName";
    // connect to your database

    sql.query(config, query, (err, rows) => {
        res.send(rows)
     });
});


var server = app.listen(3097, function () {
    console.log('Server is running..');
});

我希望能夠使用查詢

const query = "SELECT * from tableName WHERE ID LIKE <inputFromAngular>"

但我不確定如何將參數從 angular 獲取到sqlserver.js中。 (如果我能做到這一點,那么它將導致使用SET更新 SQL 表

在我的 angular 應用程序中,這就是我調用sqlserver.js以顯示 SQL 表的方式:

import { HttpClient } from '@angular/common/http';

constructor(
    private httpService: HttpClient
    ) { }


this.httpService.get("http://servername:3097").subscribe(response => {
        console.log(response)
        this.sqlData = response;
      })

我嘗試過使用this.httpService.post()但我不確定如何獲取 API 中的參數?

您將需要更改獲取方法以從 ui 端發送參數並在后端獲取參數,因此添加一個服務器端方法,例如

app.get('/:id', function (req, res) {

    var sql = require("msnodesqlv8");
 var id = req.params.id,
    // config for your database
    var config = "server=servername;Database=dataBaseName;Trusted_Connection=Yes;Driver={SQL Server Native Client 11.0}"
    const query = "SELECT * FROM tableName WHERE ID LIKE "+id;
    // connect to your database

    sql.query(config, query, (err, rows) => {
        res.send(rows)
     });
});

然后在 angular 側

this.httpService.get("http://servername:3097/"+yourid).subscribe(response => {
        console.log(response)
        this.sqlData = response;
      })

Also I would suggest you to create a root like /yourapiname/:id instead of /:id and url on angular side should be " http://servername:3097/yourapiname "+yourid because your current root can result to confliction.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM