[第3回]その他開発に役に立つ情報(Node.js/MS SQL)

 

3-1.CSVファイルを生成・ダウンロード

Node.js(Express)でCSVファイルを生成

 

  1. json2csvをインストール

json2csv:JSONデータをCSV形式に変換するパッケージ

(https://www.npmjs.com/package/json2csv)

npm i json2csv

  1. オブジェクトをCSVに変換

・データベースから取得したデータをCSV形式に変換

・変換したデータを出力するときオプションを設定することが可能

(以降、追加予定)

 

  1. 変換したCSVをダウンロードさせる

・responseするとき、以下のコードを追加する

headers: {

“Content-Disposition”: “attachment; filename=MSC_ProjectData.csv”

}

 

エラー発生

【解決】TypeError: Cannot set properties of undefined (setting ‘content-disposition’)

TypeError: Cannot set properties of undefined (setting ‘content-disposition’) at ServerResponse.setHeader

res.setHeader(‘Content-disposition’, ‘attachment; filename=data.csv’);

Expressを利用する方法だったので、今の開発環境と差がありました。

参考

・https://sapper-blog-app.vercel.app/blog/node-js-express-csv

・https://moewe-net.com/nodejs/response-download

3-2. GETDATE()はUTCならば日本の時間にするには?

GETDATE()をそのままで使わず、以下のようにする。

DATEADD(hour,9,GETDATE())

3-3. Node.jsでバリデーション機能 (joi)

インストール

npm install @hapi/joi

フォルダー化

projects.schema.js

バリデーション条件

・.string() : string型か

・.max(数字):長さが指定した範囲内か

・required():空白ではないかどうか

・allow(”):空白でもOK

3-4. 急にSQL Databaseが一時停止された場合

データベースのコンピューティングとストレージタブで「自動的に一時停止を有効にする」チェックボックスを外したら、解決できました。(自動的に一時停止されない)

3-5. VSCodeでデバッグする方法

3-6. ブラウザ(Chrome)でフォントを確認する方法

1.ブラウザでF12を押下して開発ツールを開いて左上にあるアイコン(以下のイメージを参考)を押下

2.画面でフォントを確認するところを押下

3.Elements-Computed でRendered Fontsを確認

3-7. 急にFunctionが動かない状態になったとき(503エラー)

  503エラー(Functions host is not running)になった場合

 

方法 1Functionsを停止して、また開始する

1.関数アプリを停止する

2.停止させた関数アプリを開始する

方法 2Functionsを再起動する

3-8. 特定ポートで動いていつプロセスを停止するコマンド

VSCodeのターミナル上で下記コマンドを実行

・netstat -a -o:動作しているすべてのピロセス検索

・taskkill /F /pid (killするポートのpid number)

3-9. 言語を対応するFunction(NVarChar型)

Functionで「N」を使ってNVarchar型のデータを検索する方法

・Functionでは、SQL文に「N」を使用不可能(シンタックスエラーになる)

・パラメータを追加するときに追加するデータのタイプをNVarCharに指定するだけで言語を対応して検索可能

3-10. Emailを送る方法(React/Node/Azure B2C)

# Frontendでする方法 – React.js #

 

## react-email ##

React Email は、React + TypeScript で HTML メールを構築できる

 

## EmailJs ##

emailを送るForm

一か月に200個以上からは有料

 

## mailto ##

メールアプリを開くもの、自動送信はできない

( https://www.abstractapi.com/guides/react-send-email-from-your-app-without-a-backend )

 

 

# Backendでする方法 – Node.js #

## nodemailer ##

 

npm install nodemailer

 

smtp設定が必要だが上手くできなかった。

以下はsendEmail.jsのコード

insertMemberというFunctionに使うjsとして作成してみた。

 

const nodemailer = require("nodemailer");//モジュールの読み込み

 

async function executeSQL (memberEmail) {return await new Promise((resolve, reject) => {

//SMTPサーバの設定

const smtp = nodemailer.createTransport({

host: 'localhost',

port: 25

});

 

//メール情報の作成

const message = {

from: xxxxxx@msc-net.co.jp',

to: memberEmail,

subject: 'nodemailer test mail',

text: 'テストメールです。'

};

 

// メール送信

try{

smtp.sendMail(message, function(error, info){

// エラー発生時

if(error){

console.log("send failed");

console.log(error.message);

reject(err);

}else{

// 送信成功

console.log("send successful");

console.log(info.messageId);

resolve(memberEmail);

}

});

}catch(e) {

console.log("Error",e);

}

})

};

 

module.exports = {

sendEmail : async (memberEmail) => {

const result = await executeSQL(memberEmail)

if(result == memberEmail){

return memberEmail;

}else{

return 'error';

}

}

 

};

 

# B2Cでユーザーを登録するときEmailを送くれる? #

Email認証メールではなくユーザー登録確認メールまたはパスワード設定リンクメール

 

# 参考 #

React: Send Email From Your App Without a Backend | AbstractAPI
Learn How to send Email from your React App without a backend. Try using AbstractAPI's email validation API Today for Free!
Node.js | Nodemailerを使ってメールを送信する
NodemailerをインストールNodemailerが未インストールの場合はインストールします。npm install nodemailer$ npm install nodemaileradded 1 package, and audi
nodemailerでGmailから送信するための方法 - Qiita
自分用メモ nodemailerでの設定 var smtpConfig = { host: 'smtp.gmail.com', port: 465, secure: tru...
Node.js Email
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Py...
POP、IMAP、SMTP の設定 - Microsoft サポート

 

スポンサーリンク
dreamhanksをフォローする
スポンサーリンク
DreamHanks Blog