質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

637閲覧

expressでページ遷移せずにcsvエクスポート/インポートをしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2019/01/10 12:05

編集2019/01/10 12:08

やりたいこと

ページ遷移を行わず、ページ内にあるデータをcsvエクスポートしたい。
ejsからデータを渡し、js内でcsv出力を行いたい。

不明点

エクスポート:ページ遷移をせずrouter.getを呼ぶ方法がわからない。
インポート:実装方法の検討がつかない。

ソースコード

index.ejs

ejs

1<% include ..//header %> 2 3<!-- 出力対象のid --> 4<% var csv_export_id = [] %> 5 6<!-- mysqlデータを一覧表示 --> 7<div> 8 <% for(var i in content){ %> 9 <% var obj = content[i] %> 10 <td><%= obj.id %></td> 11 <td><%= obj.name %></td> 12 13 <% csv_export_id.unshift(obj.id) %> 14 <% } %> 15</div> 16 17<--! ここの処理が不明 --> 18<button type="submit">エクスポート</button> 19<button type="submit">インポート</button> 20 21<% include ..//footer %>

index.js

js

1var express = require('express'); 2var router = express.Router(); 3var mysql = require('mysql'); 4 5var db = { 6 host: '****', 7 user: '****', 8 password: '****', 9 database: 'データベース名', 10 insecureAuth: true 11} 12 13// mysqlの一覧 14router.get('/index', function(req, res, next) { 15 16 var connection = mysql.createConnection(db); 17 connection.connect(); //MySQLの接続 18 19 connection.query('select * from データベース名', 20 function(error, results, fields){ 21 if(error == null){ 22 res.render('/index.ejs', 23 {title: 'title', 24 content: results 25 }); 26 }else{ 27 console.log('error :' + error); 28 console.log('name :' + results); 29 } 30 } 31 ); 32 connection.end(); 33}); 34 35//ここがわかりません。id,idから検索したnameの2つをcsvに書き込みたい。 36//csvエクスポート 37router.get('/', function(req, res, next) { 38 var array = req.body['id']; 39 var connection = mysql.createConnection(db); 40 connection.connect(); //MySQLの接続 41  42 for(id in array){ 43 connection.query('select * from データベース名 where id=?', id, function(error, results, fields){ 44 var name = results[0].name; 45 46 //idとnameをcsvに追加処理 47 48 }); 49 connection.end(); 50});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ajax.jsでとりあえず対応しました。

js

1var express = require('express'); 2var router = express.Router(); 3var mysql = require('mysql'); 4var db = require('../config/db'); 5 6//csvエクスポート 7router.get('/csv_export', function(req, res, next){ 8 var outputPath = '/OutputFile.csv'; 9 10 var connection = mysql.createConnection(db); 11 connection.connect(); 12 13 connection.query('select * from テーブル名 into outfile ?', outputPath, function(error, results, field){ 14 if(error == null){ 15 res.redirect('/index'); 16 console.log("success"); 17 }else{ 18 console.log(error); 19 } 20}); 21connection.end(); 22}); 23 24module.exports = router;

投稿2019/01/23 03:57

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問