Отправка параметров в Rest API для SQL Server - PullRequest
0 голосов
/ 09 октября 2019

Я создал сервер SQL с таблицей, в которой есть данные на сервере, к которому у меня есть локальный доступ. Я также создал «API» на том же сервере, чтобы получать информацию с сервера SQL, чтобы она могла быть прочитана моим угловым приложением.

В данный момент я могу читать строки на сервере SQL ичтобы они отображались в моем угловом приложении, но я хочу иметь возможность обновлять таблицу SQL из моего углового приложения (через 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. (Если я смогу это сделать, то это приведет к обновлению таблицы SQL с помощью SET

. В моем приложении на английском языке я вызываю 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?

1 Ответ

1 голос
/ 09 октября 2019

Вам нужно будет изменить метод get для отправки параметров со стороны пользовательского интерфейса и получения параметров на стороне сервера, поэтому добавьте метод на стороне сервера, например

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)
     });
});

, а затем на угловой

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

Также я бы посоветовал вам создать корень вроде /yourapiname/:id вместо /:id, а URL на угловой стороне должен быть "http://servername:3097/yourapiname"+yourid, потому что ваш текущий корень может привести к конфликту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...