2016-08-09 4 views
0

データベースファイルをローカルに作成してすべてのデータを書きたいと思いますが、node.jsとCoffeescriptを使わずにデータファイルを作成したいと考えています。いくつかのデータを保存するためのアプリケーションを開発していて、そのアプリケーションを同僚と共有する必要があり、PCにNodeJをインストールする権限がありませんので、ブラウザで実行するためにJavascriptを使用したいと思います。NodeJsとCoffeescriptなしでsql.jsを使用してsomeFileName.sqliteデータベースを作成する方法、ただしJavascriptのみを使用します。

var sql = window.SQL; 
     var db = new SQL.Database(); 
     db.run("CREATE TABLE test (col1, col2);"); 
     db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,111]); 
     db.run("INSERT INTO test VALUES (?,?), (?,?)", [3,333,4,444]); 
     var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end"); 
     stmt.getAsObject({$start:1, $end:1}); 
     stmt.bind({$start:1, $end:4}); 
        while(stmt.step()) { 
      var row = stmt.getAsObject(); 
      console.log(row.col1) 
     } 

     var data = db.export(); 
     //As per the official documentation, the data is converted into 
     //buffer and written into file using writeFileSync(); 
     var buffer = new Buffer(data); 
     fs.writeFileSync("filename.sqlite", buffer); 

しかしとしてバッファー()writeFileSync()は、私は私のコードでそれらを使用することはできません、NodeJs機能です。データをデータベースに書き込んでからファイルにエクスポートする方法はありますか?

+0

あなたのアプリケーション用のデータベースがありますか? – Adder

+0

いいえ、私は私たちの個人情報を私たちのPCに保存するためにこのアプリを開発しています。だから私はデータベースファイルをローカルに配置し、そこからデータを取得することを考えています。 –

答えて

1

クライアントコードからデータベースへの要求を実行することはお勧めできません。それは安全ではありません。 そして、それはJSのランタイム環境だとFSモジュールからwriteFileSync()バッファは、このランタイムの一部であるため、あなたは基本的に、あなたのPC上のノードのために必要。

+0

私はそれが安全ではないことを理解していますが、私はどのサーバーにもアプリケーションを展開しません。私と私の同僚のためだけに、私たちのローカルPCに私たちのデータを保存するための個人的な要件。 –

+1

@SaiRamMallikCheripallyあなたはこれを行うことはできません。 JavaScriptは設計上ファイルシステムにアクセスする必要はありません。 FSおよび/またはDBで作業する場合は、バックエンドサーバーまたはスタンドアロンデスクトップアプリケーションを作成する必要があります。 –

+0

sql.jsの公式ドキュメントの例とは別に、Javascriptでsql.jsを使用するための作業リンクを提供してください。 –

関連する問題