2017-03-21 15 views
-5

Angular JSとNode Jを初めて使用しています。私は1つの要件を達成したい。アップロードボタンが1ページあり、CSVファイルをアップロードしてCSVファイルからすべてのレコードを読み込み、サーバー側(ノードjs)に送信します。Angular js、Node Jsを使用してCSVファイルをアップロードし、MySQL DBにデータを保存

ノードjsでは角Jからデータを取得し、MySQLデータベースに保存します。この要件をどのように実装できますか?誰かが私にこの要求を助けることができますか? ありがとうございました。

Below is my **Angular Code:**<html><head><meta charset="UTF-8"> <title>File Upload Home</title></head><body ng-app = "myApp"><div ng-controller = "myCtrl"><table align="center" ><tr><td>Choose .csv file</td> 
      <td><input type="file" name="readCsvFile" id="readCsvFile" accept=".csv"> </td><td><input type="button" value="Upload" ng-click="uploadCsvFile()"></td></tr> </table></div><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <script> var myApp = angular.module('myApp', []); myApp.controller('myCtrl', ['$scope', '$http', function($scope, $http){  
$scope.uploadCsvFile = function() {  
    $http.post('/').success($scope.processData); 
    /* $http({ 
     method: 'POST', 
     url: '/', 
     headers: {'Content-Type': undefined} 
    }).success($scope.processData); */ 
}; $scope.processData = function(csv){ var lines=csv.split("\n"); var result = []; var headerscsv=lines[0].split(";"); for(var i=1;i<lines.length;i++){ 
    var obj = {}; 
    var currentline=lines[i].split(","); 
    for(var j=0;j<headerscsv.length;j++){ 
     obj[headerscsv[j]] = currentline[j]; 
    } 
    result.push(obj); } 
return JSON.stringify(result); //JSON } }]); </script> </body> </html> 

**Node Js Code:**var express = require('express');var bodyParser =require('body-parser');var app = express();var mysql = require('mysql');//var expressValidator = require('express-validator');app.use(bodyParser.urlencoded({extended: true }));app.use(bodyParser.json({ type: '*/*' }));var connection =mysql.createConnection({ host: 'localhost', user: '', password: '', database: 'dbname'});connection.connect(function(err){ if(err){ console.log('Database connection error'); }else{ console.log('Database connection successful'); }}); app.post('/', function(req, res) {var jsondata = JSON.parse(JSON.stringify(req.body));var values = [];for(var i=0; i<jsondata.length; i++){ values.push([jsondata[i].eno,jsondata[i].name,jsondata[i].age]);}connection.query('INSERT INTO members (eno, name, age) VALUES ?', [values], function(err,result) { if(err) { res.send('Error'); } else { res.send('Success'); }});});app.use(express.static('static'));var server =app.listen(3000,function(){ console.log('running on 3000...'); });

+0

あなたはアプリのプロトタイプをデザインするように求めています(入力が不十分です)。 Plzはあなたのコードを投稿します。おそらく助けを受けるかもしれません。 – MAC

+0

こんにちは私のコードをチェックして、その要件を実装する方法を教えてください。ありがとう – suresh

+0

私はノードJSを認識していませんが、AngularJSではリンクhttp://stackoverflow.com/questions/26353676/how-to-read-csv-file-content-in-angular-jsを使用してcsvファイルを読み込み、 https://github.com/bahaaldine/angular-csv-importを使用してデータをJSONに変換し、最後にAngular $ httpサービスでこのJSONデータをサーバーに送信します。 – MAC

答えて

0

あなたはNode.jsのでMySQLと角JS

を使用している場合、私はあなたが行うことができ、最も単純な実装があると思う:

  1. HTMLで最も簡単なフォームを作成します/ AngularJSを使用し、このモジュールを使用してブラウザからのファイルアップロードを有効にするhttps://github.com/danialfarid/ng-file-upload
  2. ノードを作成するアップロードしたファイルを取得してサーバーに保存するには、multerを使用してください。 MySQLと挿入データへの接続を行うために容易https://www.npmjs.com/package/csvtojson
  3. 使用Sequelize ORMを使用するJSONデータをCSVデータ/ファイルを変換するhttps://www.npmjs.com/package/multer
  4. 使用ノードモジュールcsvtojson。それはあなたがSQLデータベースを扱うためにjson形式を使用することができますので、RAWクエリを書く必要はありません。 https://www.npmjs.com/package/sequelize
+0

こんにちは、お返事ありがとう、サンプルアプリケーションがこの要件に対応しています。サンプルリンクやアプリケーションがあれば、その要件を開発するのに役立ちます。手伝っていただけませんか。 – suresh

関連する問題