Node.jsでマングーススタイルのスキーマMSSQLを使用する

WakaChewbacca

私は現在Express.jsを使用してAPIを作成しており、mongodbのスキーマ/モデルを作成する方法について多くの例を見てきましたが、MSSQLに同様のソリューションがあるかどうか疑問に思っていました。たとえば、C#コントローラーには次のメソッドがあります。

public void SubmitExpenses(List<Expense> expenses)
        {
            using (cnxn)
            {
                cnxn.Open();
                for (int i = 0; i < expenses.Count; i++)
                {
                    int employeeId = expenses.ElementAt(i).employeeId;
                    string expenseDate = expenses.ElementAt(i).expenseDate;
                    int taskId = expenses.ElementAt(i).taskId;
                    int expenseTypeId = expenses.ElementAt(i).expenseTypeId;
                    int billingCategory = expenses.ElementAt(i).billingCategory;
                    string notes = expenses.ElementAt(i).notes;
                    float amount = expenses.ElementAt(i).amount;
                    string lastUpdatedDate = expenses.ElementAt(i).LastUpdatedDate;
                    int lastUpdatedBy = expenses.ElementAt(i).LastUpdatedBy;
                    string dateSubmitted = expenses.ElementAt(i).dateSubmitted;


                    //public void SubmitExpenses(int employeeId, string expenseDate, int taskId, int expenseTypeId, int billingCategory,
                    //    string notes, float amount, string lastUpdatedDate, int lastUpdatedBy, string dateSubmitted)
                    //{

                    using (SqlCommand sqlQuery = new SqlCommand("INSERT INTO Expenses " +
                        "(Employee_ID, Task_ID, Expense_Date, Expense_Type_ID, Billing_Category_ID, " +
                        "Amount, Notes, Last_Updated_By, Last_Update_Datetime, Date_Submitted, Location) " +
                        "Values (@employeeId, @taskId, @expenseDate, @expenseTypeId, @billingCategory, @amount, @notes, " +
                        "@lastUpdatedBy, @lastUpdatedDate, @dateSubmitted, @locationId)", cnxn))
                    {
                        sqlQuery.Parameters.Add(new SqlParameter("@employeeId", SqlDbType.Int) { Value = employeeId });
                        sqlQuery.Parameters.Add(new SqlParameter("@expenseDate", SqlDbType.DateTime) { Value = expenseDate });
                        sqlQuery.Parameters.Add(new SqlParameter("@taskId", SqlDbType.Int) { Value = taskId });
                        sqlQuery.Parameters.Add(new SqlParameter("@expenseTypeId", SqlDbType.Int) { Value = expenseTypeId });
                        sqlQuery.Parameters.Add(new SqlParameter("@billingCategory", SqlDbType.Int) { Value = billingCategory });
                        sqlQuery.Parameters.Add(new SqlParameter("@notes", SqlDbType.Text) { Value = notes });
                        sqlQuery.Parameters.Add(new SqlParameter("@amount", SqlDbType.Money) { Value = amount });
                        sqlQuery.Parameters.Add(new SqlParameter("@lastUpdatedDate", SqlDbType.DateTime) { Value = lastUpdatedDate });
                        sqlQuery.Parameters.Add(new SqlParameter("@lastUpdatedBy", SqlDbType.Int) { Value = lastUpdatedBy });
                        sqlQuery.Parameters.Add(new SqlParameter("@dateSubmitted", SqlDbType.DateTime) { Value = dateSubmitted });
                        sqlQuery.Parameters.Add(new SqlParameter("@locationId", SqlDbType.VarChar) { Value = "" });

                        sqlQuery.ExecuteNonQuery();
                    }
                }
            }
        }

そしてExpense.csモデル:

public class Expense
    {
        public int employeeId { get; set; }
        public string expenseDate { get; set; }
        public int taskId { get; set; }
        public int expenseTypeId { get; set; }
        public int billingCategory { get; set; }
        public string notes { get; set; }
        public float amount { get; set; }
        public string LastUpdatedDate { get; set; }
        public int LastUpdatedBy { get; set; }
        public string dateSubmitted { get; set; }
        public string location { get; set; }
    }

Express.jsで同様の方法で、JavaScriptオブジェクトのリストを取得し、それらを要素に分割してパラメーター化して送信できるようにするにはどうすればよいですか?

それは次のようなものでしょうか...

app.post('/route/to/api', function (req, res) {
    var sql = require('mssql');

    sql.connect("mssql://user:password@localhost/Northwind").then(function () {
        console.log('connected');



       for (var i = 0; i < req.length; i++) {
            new sql.Request()
                .input('input_param', sql.VARCHAR, req[i]['PropertyName'])
                .query('INSERT INTO Table VALUES (@input_param)')
                .then(function (recordset) {
                    console.log(recordset);
                })
                .catch(function (err) {
                    console.log(err);
                });
        }
    }).catch(function (err) {
        console.log(err);
    });
});

アドバイスをいただければ幸いです。

RedJandal

見ていsequelizeをそれはあなたが必要とする機能をあなたに与えるはずです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Node JSを使用して複数のテキストをマングースに保存する理想的な方法は?

分類Dev

Node.jsのテキスト値でマングースモデルを取得します

分類Dev

コードを簡素化するためのスキーママングース(Node.js)のモデルの作成

分類Dev

カスタマーnode.jsバイナリモジュールをグローバルにインストールする方法は?

分類Dev

Node.jsマングースモジュールがHerokuで失敗する

分類Dev

Node.jsクラスターアーキテクチャ:マスターワーカーをスケーリングする方法

分類Dev

node.jsでのルートのスタッキング

分類Dev

Express.js Node.jsのマングースクエリデータ、間違った結果を取得する

分類Dev

Node js マングース タイプ エラー

分類Dev

Node.jsで未使用のパッケージをアンインストールまたは整理するnpmコマンド

分類Dev

node.jsで多くのマングースモデルモジュールをエクスポートする方法

分類Dev

node.jsチェーンの複数のpromise(マングースを使用)

分類Dev

マングースからデータを取得する際のNode.js非同期試行/キャッチエラー

分類Dev

Node.jsアプリでマングースのエラーを処理する方法

分類Dev

Webpackのnode-webkitターゲットでマングースを使用しようとしています

分類Dev

Node.js:マングーススキーマのデフォルトのランドトークンはランダムではありません

分類Dev

マシンに何もインストールせずにnode.jsを使用できますか?

分類Dev

node.jsのコマンドの出力ストリーミングをインターセプトして変数に保存する方法は?

分類Dev

node.js-マングースのコールバックでスローされたエラーをキャッチ

分類Dev

Node.js-マングースの約束-ループスルー

分類Dev

このオブジェクトをtypeof、Integer {value:340895965n}でnode.jsを使用してマングースに格納するスキーマはありますか?

分類Dev

Node.JSのシングルスレッドイベントループとマルチスレッド非ブロッキングワーカー

分類Dev

Node requireは、マングーススキーマのコードを2回実行します

分類Dev

GraphQLスキーマディレクティブでフィールドタイプを取得する方法(Node.js、graphql-tools)

分類Dev

node.jsでdynamodbスキャン操作を使用してテーブルデータ全体を取得する方法

分類Dev

Linuxコマンドラインを使用してNode.JSをアンインストールしますか?

分類Dev

mysqlデータベースを使用してnode.jsでログインAPIを作成する方法

分類Dev

マングースはnode.jsの下でのみ機能しますか?

分類Dev

イベントタイマーを使用したnode.jsのスケーラビリティ(setTimeout)

Related 関連記事

  1. 1

    Node JSを使用して複数のテキストをマングースに保存する理想的な方法は?

  2. 2

    Node.jsのテキスト値でマングースモデルを取得します

  3. 3

    コードを簡素化するためのスキーママングース(Node.js)のモデルの作成

  4. 4

    カスタマーnode.jsバイナリモジュールをグローバルにインストールする方法は?

  5. 5

    Node.jsマングースモジュールがHerokuで失敗する

  6. 6

    Node.jsクラスターアーキテクチャ:マスターワーカーをスケーリングする方法

  7. 7

    node.jsでのルートのスタッキング

  8. 8

    Express.js Node.jsのマングースクエリデータ、間違った結果を取得する

  9. 9

    Node js マングース タイプ エラー

  10. 10

    Node.jsで未使用のパッケージをアンインストールまたは整理するnpmコマンド

  11. 11

    node.jsで多くのマングースモデルモジュールをエクスポートする方法

  12. 12

    node.jsチェーンの複数のpromise(マングースを使用)

  13. 13

    マングースからデータを取得する際のNode.js非同期試行/キャッチエラー

  14. 14

    Node.jsアプリでマングースのエラーを処理する方法

  15. 15

    Webpackのnode-webkitターゲットでマングースを使用しようとしています

  16. 16

    Node.js:マングーススキーマのデフォルトのランドトークンはランダムではありません

  17. 17

    マシンに何もインストールせずにnode.jsを使用できますか?

  18. 18

    node.jsのコマンドの出力ストリーミングをインターセプトして変数に保存する方法は?

  19. 19

    node.js-マングースのコールバックでスローされたエラーをキャッチ

  20. 20

    Node.js-マングースの約束-ループスルー

  21. 21

    このオブジェクトをtypeof、Integer {value:340895965n}でnode.jsを使用してマングースに格納するスキーマはありますか?

  22. 22

    Node.JSのシングルスレッドイベントループとマルチスレッド非ブロッキングワーカー

  23. 23

    Node requireは、マングーススキーマのコードを2回実行します

  24. 24

    GraphQLスキーマディレクティブでフィールドタイプを取得する方法(Node.js、graphql-tools)

  25. 25

    node.jsでdynamodbスキャン操作を使用してテーブルデータ全体を取得する方法

  26. 26

    Linuxコマンドラインを使用してNode.JSをアンインストールしますか?

  27. 27

    mysqlデータベースを使用してnode.jsでログインAPIを作成する方法

  28. 28

    マングースはnode.jsの下でのみ機能しますか?

  29. 29

    イベントタイマーを使用したnode.jsのスケーラビリティ(setTimeout)

ホットタグ

アーカイブ