0

この JavaScript コードを .html ドキュメントで実行することは可能ですか:

<script>
    function DBConnect() {
        var mysql = require('mysql');
        var mydb = mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: 'admin123',
            database: 'users'
        });

        var username = user_name.value;
        mydb.connect();

        var query = ('select passwd from peer where username=' + username);

        console.log(query);

        connection.end(function(err) {
            // The connection is terminated now
        });
    }
</script>

私がしようとしているときに常にエラーが発生したためです:未定義の「必要」、または他のfe:db.jsでこの関数を呼び出すにはどうすればよいですか? Node.js から実行されている server.js のスクリプトを既に作成しています。上記のコードをここで実行する必要があると思いますか?

4

4 に答える 4

4

browserify を提案するすべての人を無視します。クライアント/サーバー アーキテクチャの基本的な理解があり、したがって、browserify の制限を直感的に理解していれば、これは理にかなっています。あなたの質問への答えは

いいえ。

Node.js コードはサーバー上で実行されます。あなたのコードでは、クライアントでは実行できないことを行っています。機密情報を処理するコードを作成する前に、その理由を理解しておく必要があります。

于 2013-05-10T16:59:51.617 に答える
2

browserifyを使用すると、一部のNode.jsモジュールをブラウザーで実行できますが、そのような大量のI/Oを実行するモジュールはブラウザーで実行できません。

いいえ、単純にこの Node.js コードを取得してブラウザーで実行することはできません。サーバーがデータベースへのすべてのアクセスを行う、適切なクライアント/サーバー アプリケーションを設計する必要があります。

多くのチュートリアルを取得するソリューションは、たとえば

  • ブラウザの JavaScript コードがAjaxリクエストを発行できるようにするには
  • サーバーがデータベースにクエリを実行してこれらの要求に応答し、応答でJSONのデータを送信できるようにします。
  • この JSON を使用してブラウザーに HTML を変更させるには。

「json node.js ajax mysql」をグーグルで検索することから始めることもできますが、多くの研究が直面しています。

于 2013-05-10T16:44:59.790 に答える
2

HTMLから直接MySQLデータベースに接続できたとしても、それは悪い考えです。データベースの認証情報を HTML に含めると、その Web ページにアクセスできる人は誰でもデータベースにアクセスして、好きなことを行うことができます。これは悪い考えです。

于 2013-05-10T16:50:22.387 に答える
0

ブラウザーで Node.js JavaScript コードを実行しようとしている可能性がありますが、requireキーワードが認識されません。

JavaScript ファイルをブラウザにインポートするには、次のようなものを使用する必要があります。

<script src="path/to/your/JavaScript/file"></script>
于 2013-05-10T16:46:00.473 に答える