node、jsを使用してSQL Azureデータベースに接続しているようですが、クエリが実行されないのはなぜですか?

gordon613

次のコードを使用して、node.jsを使用してSQLAzureデータベースに接続しています

既存のnodejsサーバーアプリをAzureSQLデータベースに接続する方法からコードを取得しました

const express=require('express');
const router = express.Router()
const sql = require('mssql')


const config = {

  user: "<user>",
  password: "<password>",
  server: "<myserver>.database.windows.net",
  
  database: "<mydatabase>",
  connectionTimeout: 3000,
  parseJSON: true,
  options: {
    encrypt: true,
    enableArithAbort: true
  },
  pool: {
    min: 0,
    idleTimeoutMillis: 3000
  }
};
const pool = new sql.ConnectionPool(config);
const poolConnect = pool.connect();

router.get('/', async function (req, res) {
 console.log('here');
  await poolConnect;
  try {
    const request = pool.request(); 
    const result = await request.query('select 1 as number')
    console.log(result);
    res.json(result.recordset);
    
} catch (err) {
    console.error('SQL error', err);
    res.send(err);
}
});

パスワードを変更すると次のようなエラーが発生するため、コードが接続されていることがわかります

(node:24172) UnhandledPromiseRejectionWarning: ConnectionError: Login failed for user '<user>'.
    at Connection.<anonymous> (C:\Users\myuser\node_modules\mssql\lib\tedious\connection-pool.js:68:17)
    at Object.onceWrapper (events.js:417:26)
    at Connection.emit (events.js:310:20)
    at Connection.message (C:\Users\myuser\node_modules\mssql\node_modules\tedious\lib\connection.js:2148:18)
    at Connection.dispatchEvent (C:\Users\myuser\node_modules\mssql\node_modules\tedious\lib\connection.js:1279:15)

しかし、正しいパスワードを入力すると、コードはまったく何も出力しません。

で非同期関数に入っていないようです。 router.get('/', async function (req, res) {

なぜ何かアイデアはありますか?

ストーカー

コメントで述べたように、Expressリスナーを起動したり、Expressアプリを対象としたリクエストを行ったりすることはありません。したがって、もちろん、コードが実行されることはありません。テスト目的の場合は、エクスプレスは必要ありません。非同期関数を作成して、アプリで呼び出すだけです。

const sql = require('mssql')
const config = {

  user: "<user>",
  password: "<password>",
  server: "<myserver>.database.windows.net",
  
  database: "<mydatabase>",
  connectionTimeout: 3000,
  parseJSON: true,
  options: {
    encrypt: true,
    enableArithAbort: true
  },
  pool: {
    min: 0,
    idleTimeoutMillis: 3000
  }
};
const pool = new sql.ConnectionPool(config);

doRequest()
  .then(_ => { console.log("succeeded"); })
  .catch(e => { console.log("error", e); });

async function doRequest() {
  await pool.connect();
  let result = await pool.request().query("select 1 as number");
  console.log(result);
}

Expressアプリで本当に必要な場合は、そこにある基本的なExpress初心者向けチュートリアルを1つ入手し、簡単なExpressを作成して、ルートハンドラーの1つにdb-requestコードを含めます...

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

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

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  2. 2

    <p:fieldset>の凡例に<h1>、<h2>タグを配置するにはどうすればよいですか?

  3. 3

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  4. 4

    パンダは異なる名前の列に追加します

  5. 5

    Railsで宝石のレイアウトを使用するにはどうすればよいですか?

  6. 6

    Java文字列の仕組み

  7. 7

    Chromeウェブアプリのウェブビューの高さの問題

  8. 8

    CSSのみを使用して三角形のアニメーションを作成する方法

  9. 9

    httpListenerコールバックが2回呼び出されます

  10. 10

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  11. 11

    初期化時にextern / static変数のタイプを指定する必要があるのはなぜですか?

  12. 12

    ファイルがgitlfsに正しくアップロードされるかどうかを確認するにはどうすればよいですか?

  13. 13

    Grouping data with datatable with ASP.NET

  14. 14

    Ecto - migrate table column into its own join table (shifting the DATA to the new tables)

  15. 15

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  16. 16

    Python / SciPyのピーク検出アルゴリズム

  17. 17

    PictureBoxで画像のブレンドを無効にする

  18. 18

    ディスパッチ不可能なハンドルが64ビットプラットフォームでptrを使用するのはなぜですか?

  19. 19

    アクティブな管理者で関連するモデルのドロップダウンメニューの問題を解決する方法

  20. 20

    Windows 7では、一部のプログラムは「ビジュアルテーマを無効にする」レジストリ設定を行いませんか?

  21. 21

    文字列内のすべての単語に一致する正規表現

ホットタグ

アーカイブ