問題タブ [node-mysql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1429 参照

node.js - 私の場合、node.jsのmysqlモジュールが機能しません

だから私はここで見つけた次のテストコードを持っています

mysql モジュールをダウンロードし、もちろん mysql をインストールし、次のスクリプトを実行しましたが、結果が得られません。私が間違っていることを教えてもらえますか?

ロードしようとすると

ブラウザがページを数分間読み込もうとしても結果がありません。

ありがとう。

アップデート ここに画像の説明を入力

0 投票する
5 に答える
21209 参照

mysql - MySQL エラーを再現: サーバーが接続を閉じました (node.js)

ノード mysql ライブラリを使用して、EC2 の node.js アプリで発生している MySQL エラーを再現しようとしています。

接続が失われました: サーバーが接続を閉じました。

エラーをローカルで再現することはできません。データベースの強制終了は私のコードで問題なく処理されます。数秒ごとに再チェックし、再起動するとデータベースに再接続します。EC2 では、太平洋時間の午前 4 時頃に発生しますが、データベースはまだ正常に稼働しています。

そうしたいです。

  1. ローカル mysql でクラッシュを再現する
  2. これを処理するために必要なロジックを mysql ヘルパー モジュールに追加します。

私のnode.jsアプリのエラーは次のとおりです。

2012-10-22T08:45:40.518Z - エラー: uncaughtException date=Mon Oct 22 2012 08:45:40 GMT+0000 (UTC)、pid=14184、uid=0、gid=0、cwd=/home/ec2 -user/my-app, execPath=/usr/bin/nodejs, version=v0.6.18, argv=[/usr/local/bin/node, /home/ec2-user/my-app/app.js, - -my-app]、rss=15310848、heapTotal=6311392、heapUsed=5123292、loadavg=[0.0029296875、0.0146484375、0.04541015625]、uptime=3238343.511107486、ec trace=[column=13、2=my-user/home/ app/node_modules/mysql/lib/protocol/Protocol.js, function=Protocol.end, line=63, method=end, native=false, column=10, file=stream.js, function=Socket.onend, line= 80、メソッド=onend、ネイティブ=false、列=20、ファイル=events.js、関数=Socket.emit、行=88、メソッド=発行、ネイティブ=false、列=51、ファイル=net.js、関数= TCP.onread、行 = 388、メソッド = onread、ネイティブ = false]、スタック = [エラー: 接続が失われました:サーバーが接続を閉じました。,
Protocol.end (/home/ec2-user/my-app/node_modules/mysql/lib/protocol/Protocol.js:63:13)、Socket.onend (stream.js:80:10)、Socket.エミット (events.js:88:20)、TCP.onread (net.js:388:51) で]

これが私のコードです(mysqlヘルパーモジュール):

0 投票する
2 に答える
5522 参照

mysql - Node.js の MySQL が非常に遅いのはなぜですか?

私のNode.jsコードは以下のようなものです

CODE1: 以下

問題は、ページの更新が速すぎるとサーバーがクラッシュすることです。node-mysql モジュールの問題だと思います。クエリをキューで処理します。そのため、接続プールを作成しようとします。

CODE2: 以下

しかし、問題はまだここにあります。どうすればこれを修正できますか。

編集: 100 の同時実行性で 100 のリクエストを開始し、10 秒が予想されます。しかし、20秒かかります。なんで?プールは最大 5 つの接続しかサポートしていませんか?

0 投票する
0 に答える
240 参照

node.js - クライアント ページの更新後にクライアントが node.js からのみデータを受信するのはなぜですか?

これは非常に奇妙です。私のログの要約出力は次のとおりです。

最初のブロックは最初のクライアント接続で、次のように名前空間を socket.io に渡します。http://server/59a0747b-50b3-46c9-be7e-3d74fd513fcf

次の 2 行が空白であることに注意してください。

p>

2 番目のブロック (すべて同じログ内) は、クライアントの Web ページを更新した後に発生します。接続 URL は同じですが、

ードが名前空間のクライアントにデータを送信するために必要な情報を表示しています。

編集:特に オブジェクトを調査すると、クライアントのソケットがリストされている場合に、接続を正常に確立するためにクライアントページを更新する必要がある理由がわかりません。io.namespaces['/59a0747b-50b3-46c9-be7e-3d74fd513fcf'].sockets 最初のクライアント接続後、名前空間が io オブジェクトのどこかにあることはありません。なんで?

クライアント接続で最初に発生するのはdbルックアップであり、node-mysqlを使用していますが、別のリモートサーバーに接続してその情報を取得することに言及する価値があるかもしれませんし、そうでないかもしれません。

0 投票する
2 に答える
7005 参照

mysql - Node.js、Express、および mysql モジュールのふるい分け

node.js の高速フレームワークと mysql モジュールhttps://npmjs.org/package/mysqlを統合しようとしています。簡単なアプリケーションのセットアップ (エクスプレス コマンド ラインを使用) があり、いくつかのデータベース プロパティを操作するために宣言されたモジュールもあります。

私のDBモジュールは次のように設定されています:

mysql モジュールをセットアップすると、db モジュールの依存関係になります。

私の db モジュールの index.js には、アプリケーションからアクセスできるようにいくつかのモジュール エクスポートが設定されています。

私の app.js ファイルでは、db モジュールを要求し、いくつかのルートを指定しています。また、クライアント ルートの app.get メソッド内でルート ミドルウェア関数 (estDb) を使用しようとしています。

私が抱えている問題は、ログを取得しているときにアプリケーションを起動すると、db 関数 (モジュールのエクスポート) が呼び出されているように見えることです。

URLが要求されたときではありませんhttp://localhost/clients(これは、ルートが定義されているものです)。ご覧のとおり、コンソールが「ポート 3000 でリッスンしている Express サーバー」というメッセージをログに記録した直後に、db.connect() と db.end() を起動しています。これは、カスタム db モジュールから起動していると思われます。使っています。その後、ルートに移動するとhttp://localhost/clientsエラーが発生します。

db モジュールから connection.end() 関数を削除すると、データベースに接続して結果を取得できます。ただし、ページをリロードして結果を再度ロードしようとすると、エラーが発生します。

アプリケーションの起動時にモジュールのエクスポートが起動する理由がわかりません。ここが困ったところだと思います。

これに関する提案やヘルプは素晴らしいでしょう。

0 投票する
1 に答える
754 参照

node.js - 列名が重複している結合のOptionsパラメーターを使用したクエリのエスケープ

npmのnode-mysqlのドキュメント(https://npmjs.org/package/mysql)には、次のようなテーブル結合で列名をオーバーラップさせるオプションがあります。

クエリ識別子の形式をエスケープすると、識別子connection.query()をサニタイズする2番目のパラメータがに渡されます。

この2つを一緒に使用するにはどうすればよいのでしょうか。結合で識別子をエスケープする必要があるが、ネストされたテーブルのオプションを宣言したいとします。

connection.query()次のように、エスケープ値を2番目のパラメーターとして渡そうとしました。

しかし、役に立たない。とにかくこれを行うことができるかどうか疑問に思いますか?

0 投票する
1 に答える
905 参照

node.js - node-mysql で typeof を使用して delete where 1 を防止する

node-mysql を使用しています。

1削除クエリに渡すと、テーブル全体が削除されることに気付きました。これは私の構文では理にかなっていますが、偶発的なドロップから保護したいと考えています。

現在、 を使用してクエリにオブジェクトを渡すようにすることで、これを防いでいますtypeof。これは信頼できますか?

0 投票する
1 に答える
1440 参照

node.js - node-mysqlチュートリアルの実行中にエラーが発生する

node-mysqlのチュートリアル部分でコードを実行していますが、エラーが発生します

コード

エラー:

/home/comapq/Works/Nodejs/Codes/node_modules/mysql-pool/lib/mysql-pool/pool.js:158 for(Client.prototypeのvar key){^ TypeError:未定義のプロパティ'prototype'を読み取ることができませんMySQLPool._populate(/home/comapq/Works/Nodejs/Codes/node_modules/mysql-pool/lib/mysql-pool/pool.js:158:23)新しいMySQLPool(/home/comapq/Works/Nodejs/Codes/ node_modules / mysql-pool / lib / mysql-pool / pool.js:44:7)オブジェクトで。(/home/comapq/Works/Nodejs/Codes/test-mysql-3.js:2:12)at Module._compile(module.js:449:26)at Object.Module._extensions..js(module.js :467:10)at Module.load(module.js:356:32)at Function.Module._load(module.js:312:12)at Module.runMain(module.js:492:10)at process.startup .processNextTick.process。

0 投票する
3 に答える
1761 参照

javascript - Node.jsを使用したappfog javascriptを使用してmysqlデータベースにアクセスする方法は?

appfog で node.js アプリケーションを 1 つ公開していますが、( https://github.com/felixge/node-mysql ) を使用して javascript を介して mysql データベースにアクセスしようとすると、「node-mysql」がインストールされていないようです。これを行う方法は何ですか?appfog サイトにドキュメントはありません。ありがとう。

サーバー app.js のコード:

そしてエラー:

0 投票する
1 に答える
440 参照

javascript - node-mysql 配列のエスケープは最初の要素のみを返していますか?

node.js を使用して、クライアントと対話し、クライアントから送信されたデータを mysql データベースに格納するための HTTP サーバーを作成しています。node-mysql モジュールを使用してデータベースとやり取りしています。以下は私のコードのスニペットです:

結果のクエリは次のようになります。

3 つの要素を持つ配列を渡していますが、クエリには 1 つしか表示されません。ドキュメントには次のように記載されています。

配列はリストに変換されます。たとえば、['a', 'b'] は 'a', 'b' に変換されます。

私は何か間違ったことをしていますか?私はjavascriptが初めてです。無知があればご容赦ください。