問題タブ [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.
node.js - 私の場合、node.jsのmysqlモジュールが機能しません
mysql モジュールをダウンロードし、もちろん mysql をインストールし、次のスクリプトを実行しましたが、結果が得られません。私が間違っていることを教えてもらえますか?
ロードしようとすると
ブラウザがページを数分間読み込もうとしても結果がありません。
ありがとう。
アップデート
mysql - MySQL エラーを再現: サーバーが接続を閉じました (node.js)
ノード mysql ライブラリを使用して、EC2 の node.js アプリで発生している MySQL エラーを再現しようとしています。
接続が失われました: サーバーが接続を閉じました。
エラーをローカルで再現することはできません。データベースの強制終了は私のコードで問題なく処理されます。数秒ごとに再チェックし、再起動するとデータベースに再接続します。EC2 では、太平洋時間の午前 4 時頃に発生しますが、データベースはまだ正常に稼働しています。
そうしたいです。
- ローカル mysql でクラッシュを再現する
- これを処理するために必要なロジックを 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ヘルパーモジュール):
mysql - Node.js の MySQL が非常に遅いのはなぜですか?
私のNode.jsコードは以下のようなものです
CODE1: 以下
問題は、ページの更新が速すぎるとサーバーがクラッシュすることです。node-mysql モジュールの問題だと思います。クエリをキューで処理します。そのため、接続プールを作成しようとします。
CODE2: 以下
しかし、問題はまだここにあります。どうすればこれを修正できますか。
編集: 100 の同時実行性で 100 のリクエストを開始し、10 秒が予想されます。しかし、20秒かかります。なんで?プールは最大 5 つの接続しかサポートしていませんか?
node.js - クライアント ページの更新後にクライアントが node.js からのみデータを受信するのはなぜですか?
これは非常に奇妙です。私のログの要約出力は次のとおりです。
最初のブロックは最初のクライアント接続で、次のように名前空間を socket.io に渡します。http://server/59a0747b-50b3-46c9-be7e-3d74fd513fcf
次の 2 行が空白であることに注意してください。
p>2 番目のブロック (すべて同じログ内) は、クライアントの Web ページを更新した後に発生します。接続 URL は同じですが、
ードが名前空間のクライアントにデータを送信するために必要な情報を表示しています。編集:特に
オブジェクトを調査すると、クライアントのソケットがリストされている場合に、接続を正常に確立するためにクライアントページを更新する必要がある理由がわかりません。
最初のクライアント接続後、名前空間が io オブジェクトのどこかにあることはありません。なんで?io.namespaces['/59a0747b-50b3-46c9-be7e-3d74fd513fcf'].sockets
クライアント接続で最初に発生するのはdbルックアップであり、node-mysqlを使用していますが、別のリモートサーバーに接続してその情報を取得することに言及する価値があるかもしれませんし、そうでないかもしれません。
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() 関数を削除すると、データベースに接続して結果を取得できます。ただし、ページをリロードして結果を再度ロードしようとすると、エラーが発生します。
アプリケーションの起動時にモジュールのエクスポートが起動する理由がわかりません。ここが困ったところだと思います。
これに関する提案やヘルプは素晴らしいでしょう。
node.js - 列名が重複している結合のOptionsパラメーターを使用したクエリのエスケープ
npmのnode-mysqlのドキュメント(https://npmjs.org/package/mysql)には、次のようなテーブル結合で列名をオーバーラップさせるオプションがあります。
クエリ識別子の形式をエスケープすると、識別子connection.query()
をサニタイズする2番目のパラメータがに渡されます。
この2つを一緒に使用するにはどうすればよいのでしょうか。結合で識別子をエスケープする必要があるが、ネストされたテーブルのオプションを宣言したいとします。
connection.query()
次のように、エスケープ値を2番目のパラメーターとして渡そうとしました。
しかし、役に立たない。とにかくこれを行うことができるかどうか疑問に思いますか?
node.js - node-mysql で typeof を使用して delete where 1 を防止する
node-mysql を使用しています。
1
削除クエリに渡すと、テーブル全体が削除されることに気付きました。これは私の構文では理にかなっていますが、偶発的なドロップから保護したいと考えています。
現在、 を使用してクエリにオブジェクトを渡すようにすることで、これを防いでいますtypeof
。これは信頼できますか?
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。
javascript - Node.jsを使用したappfog javascriptを使用してmysqlデータベースにアクセスする方法は?
appfog で node.js アプリケーションを 1 つ公開していますが、( https://github.com/felixge/node-mysql ) を使用して javascript を介して mysql データベースにアクセスしようとすると、「node-mysql」がインストールされていないようです。これを行う方法は何ですか?appfog サイトにドキュメントはありません。ありがとう。
サーバー app.js のコード:
そしてエラー:
javascript - node-mysql 配列のエスケープは最初の要素のみを返していますか?
node.js を使用して、クライアントと対話し、クライアントから送信されたデータを mysql データベースに格納するための HTTP サーバーを作成しています。node-mysql モジュールを使用してデータベースとやり取りしています。以下は私のコードのスニペットです:
結果のクエリは次のようになります。
3 つの要素を持つ配列を渡していますが、クエリには 1 つしか表示されません。ドキュメントには次のように記載されています。
配列はリストに変換されます。たとえば、['a', 'b'] は 'a', 'b' に変換されます。
私は何か間違ったことをしていますか?私はjavascriptが初めてです。無知があればご容赦ください。