3-1.CSVファイルを生成・ダウンロード
Node.js(Express)でCSVファイルを生成
- json2csvをインストール
json2csv:JSONデータをCSV形式に変換するパッケージ
(https://www.npmjs.com/package/json2csv)
npm i json2csv
- オブジェクトをCSVに変換
・データベースから取得したデータをCSV形式に変換
・変換したデータを出力するときオプションを設定することが可能
(以降、追加予定)
- 変換した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
1 2 3 4 5 6 7 |
const joi = require("@hapi/joi"); const schema = { projects: joi.object({ バリデーションチェックをするカラム:joi.バリデーション条件 }) }; module.exports = schema; |
バリデーション条件
・.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)になった場合
方法 1)Functionsを停止して、また開始する
1.関数アプリを停止する
2.停止させた関数アプリを開始する
方法 2)Functionsを再起動する
3-8. 特定ポートで動いていつプロセスを停止するコマンド
VSCodeのターミナル上で下記コマンドを実行
・netstat -a -o:動作しているすべてのピロセス検索
・taskkill /F /pid (killするポートのpid number)
3-9. 言語を対応するFunction(NVarChar型)
Functionで「N」を使ってNVarchar型のデータを検索する方法
・Functionでは、SQL文に「N」を使用不可能(シンタックスエラーになる)
・パラメータを追加するときに追加するデータのタイプをNVarCharに指定するだけで言語を対応して検索可能
1 |
request.addParameter([パラメータ名], TYPES.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認証メールではなくユーザー登録確認メールまたはパスワード設定リンクメール
# 参考 #



