- 1. Node.jsとは
- 2. Node.jsの基本的な使い方
- 2.0.1. Expressの導入,サーバーの起動
- 2.0.2. npmについてまとめ
- 2.0.3. PHPでの文字列送信方法
- 2.0.4. ? Microsoft Teams 開発の初心者向けガイド その3: メッセージ・エクステンション
- 2.0.5. nodeプロジェクトで新規 dependency 追加時に、自動で脆弱性チェックを行う
- 2.0.6. nodeアプリケーションを実行可能ファイルにして出力する
- 2.0.7. Node.jsについて調べたことまとめ
- 2.0.8. Expressで簡易APIサーバー作成_1 Sequelizeでマイグレーションしてみる
- 2.0.9. GoogleのサービスをPuppeteerで自動操作する方法 – ログイン編
- 2.0.10. AWS CDK で Docker イメージを Lambda にデプロイする
- 2.0.11. 【箇条書きで解説】Dockerに入門しよう!!
- 2.0.12. Node.jsアプリのOpenID Connect認証連携
- 2.0.13. platform.js のparse()に”てきとー”なUserAgentを入れたときの戻り値
- 2.0.14. Promise のキャンセルについて
- 2.0.15. 【Node.js × LINE WORKS API】API で BOT を登録する
- 2.0.16. 【備忘録】自分がフロントエンドで使っているツール
- 2.0.17. Everything about Cancellation of Promises
- 2.0.18. 空いてる時間を気軽に共有出来るサービスを作ってみた
Cannot find module ‘express’の解決法
nodeをインストールしてプログラムを実行しようとした所、エラーが出た。
## エラー文
“`
internal/modules/cjs/loader.js:834
throw err;
^Error: Cannot find module ‘express’
“`
## プログラム“`Javascript:app.js
const express = require(‘express’)
const app = express()
const port = 3000app.get(‘/’, (req, res) => {
res.send(‘Hello World!’)
})app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
“`https://expressjs.com/ja/starter/hello-world.html
## 対処方法
expressをinstallし、パスを通す。
oh、簡単。。
Node.js & TypeScriptのプロジェクトの開始
こちらに全部書いてあります。
Node.js & TypeScriptのプロジェクト作成
https://typescript-jp.gitbook.io/deep-dive/nodejs“`
・package.json作成
npm init -y・TypeScript・node.jsの型ファイルインストール
npm i –save-dev typescript @types/node・tsconfig.json作成
npx tsc –init・tsのバージョン確認
npx tsc –version・ts-node,nodemonをインストール
npm i –save-dev ts-node nodemon・scriptsにコマンドを記載
“scripts”: {
“start”: “npm run build:live”,
“build”: “tsc -p .”,
“build:live”: “nodemon –watch ‘src/**/*.ts’ –exec ‘ts-node’ src/index.ts”
}
“
Progate Node.js学習
Node.jsとは
**Node.js**とは、Javascriptをサーバーサイドで動かすための言語です。ProgateのNode.js学習コースでは、買い物サービスをつくる過程でNode.jsの使い方を学んでいきます。そして、Node.jsには便利な機能を簡単に使うためにまとめられている**パッケージ**というものがあり、今回は**Express**というパッケージを使います。
Node.jsの基本的な使い方
Expressの導入,サーバーの起動
まず、インターネットから自分のアプリケーションにパッケージをインストールします。そして、Expressを使うには、パッケージの読み込みと、実際に使用するための準備をする必要があります。
“`app.js
const express = require(“express”);
const app = express();
“`
サーバーを起動させるには、`listen`を用いてapp.jsファイルを実行します。“`app.js
app.listen(3000);
“`
npmについてまとめ
#npmとは
**Node Package Manager**の略
Node.jsの**パッケージ管理システム**である。
2010年に**Isaac Z. Schlueter**氏によって開発された。
#パッケージ管理システムとは
> パッケージ管理システム(パッケージかんりシステム)は、オペレーティングシステム (OS) というひとつの環境で、各種のソフトウェアの導入と削除、そしてソフトウェア同士やライブラリとの依存関係を管理するシステムである。
要は世界の凄い人たちが作って公開しているモジュールをパッケージとして管理し、検索、閲覧、及びダウンロードして使えるよ〜というシステムです。
また、使用したいパッケージの依存パッケージ、そのバージョンまで自動で管理してくれます。
#npmを使わないとどうなる?
例えば**[express](https://www.npmjs.com/package/express)**というパッケージを使用したいとします。
**express**は30ものパッケージと依存関係にあります。
![スクリーンショット 2020-12-04 21
PHPでの文字列送信方法
21803
項目表示の為には以下の項目を書く。
こんにちは。今回はPHPでのデータ送受信方法が分からないという人の為に説明します。php>
ここのPOSTというのはデータ送信を示しています。もう一つGETという物が有りますが、このGETという物はURLのところの最後のところは相手側から送られてきたデータの事ですので、その内容が見えてしまいます。なので、データ送受信の際にはPOSTを使う事をお勧めします。
次にこのaction属性を使う事で送信先を指定することが出来ます。この場合ですとtestform.phpにデータを送信します。次にこのtypeについて説明します。このtypeで”text”と指定する事により、テキストボックスでデータを送信することが出来ます。
次に
? Microsoft Teams 開発の初心者向けガイド その3: メッセージ・エクステンション
みなさんこんにちは〜。この記事は、Microsoft Teams 開発の初心者向けガイド第3弾になります。前回の2つのチュートリアル ( [タブの開発](https://dev.to/azure/beginners-guide-to-ms-teams-development-1-tabs-4e9k/?WT.mc_id=m365-9174-timura) と [Bot 開発](https://dev.to/azure/beginners-guide-to-ms-teams-development-2-bots-590m/?WT.mc_id=m365-9174-timura))も楽しんでもらえていたらうれしいです。
今回は、Teams UI からのユーザからのアクションで検索結果やメッセージを書き出す方法について説明します。
![3-ext1-cover-1000×420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663749/c97928d9-2a4d-2d7f-cc2c-19af73a54b81
nodeプロジェクトで新規 dependency 追加時に、自動で脆弱性チェックを行う
# 概要
npm (yarn) によるパッケージ管理は非常に楽ですが、ときには脆弱性を含むパッケージを入れてしまうこともあるかもしれません。
CI/CD パイプラインで 脆弱性チェックを行うのも良いかもしれませんが、ローカルで依存パッケージを追加・コミットする前に脆弱性チェックを行い、無駄なコミットが含まれないようにするほうがスマートだと私は思っています。そこで、 `lint-staged`と`husky`を使って、依存関係を追加した場合のcommitで脆弱性チェック(`audit`)をする設定をします。
# 関連パッケージ等
– yarn (npmでも脆弱性チェックはできますが、ここではyarnを使います)
– lint-staged
– husky# やったこと(結論)
`husky`と`lint-staged`をdevDependenciesに入れて、`package.json` に以下を追加しましょう。“`package.json
{
“scripts”: {
“audit:moderate”: “yarn audit –level moderat
nodeアプリケーションを実行可能ファイルにして出力する
## 結論
こちらを使っていきます
https://github.com/nexe/nexeNexe is a command-line utility that compiles your Node.js application into a single executable file.
(NexeはNode.jsアプリケーションを実行可能ファイルにコンパイルするためのコマンドラインツールです。)## プログラム
せっかくなのでそれっぽくするために、Qiitaの情報をスクレイピングしてくるプログラムを作成します
*chromedriverが入っている必要あり“` qiita.js
const {Builder, By, Capabilities, Key, until} = require(‘selenium-webdriver’);
const capabilities = Capabilities.chrome()capabilities.set(‘chromeOptions’, {
args: [
// ‘–headless’,
‘–
Node.jsについて調べたことまとめ
#Node.jsとは
**サーバーサイドのJavascript実行環境である。**
PHP、Ruby、Python、Java等の言語と同様に、サーバー側で動作するJavaScript。
Google Chromeに搭載されたJSエンジンV8をサーバーで実行できるようにしたというイメージ。
V8の処理は、他のPHP/Perl/Ruby/Pythonなどのスクリプト言語の処理エンジンよりも速い。
# Node.jsでできること
– サーバーサイドアプリケーション
– Webアプリ
– Node.js + Express– クライアントサイドアプリケーション
– Visual Studio Code
– GitHub Decktop
– Slackなどが利用例である。
Node.js + Electron– IoT
– Node.js + Raspberry Pi# Node.jsの特徴
– シングルスレッド– ノンブロッキングI/O(非同期処理)
– イベントループ###シングルスレッド
プロ
Expressで簡易APIサーバー作成_1 Sequelizeでマイグレーションしてみる
## 概要
オリジナルアプリのフロントをReactで作成していて、APIサーバーをExpressで作成してみることにしました。バックでのJavaScriptの使われ方を知りたいと思っていたことがきっかけです。公式によるとExpressとは、次の通りです。
>Express は、Web アプリケーションとモバイル・アプリケーション向けの一連の堅固な機能を提供する最小限で柔軟な Node.js Web アプリケーション・フレームワークです。ExpressでもRailsのActiveRecordのようにORMでDBを扱いたいと思っていたところ、Sequelizeというパッケージがあるようです。
使い方を調べてみました。## 目的
ExpressのスケルトンからSequelizeを使ってCRUDの雛形をささっと作れるようなるために、手順をアウトプットすることが目的です。
今後、何回かに分けてアウトプットしていこうと思います。今回の目標は次の通りです。
* Expressアプリーケーションのスケルトンを作成する。
* ユーザーを表すシンプルなモデルを作成する。
* マイグレーシ
GoogleのサービスをPuppeteerで自動操作する方法 – ログイン編
http://makiuchi-d.github.io/2020/12/03/autologin-to-google.ja.html
AWS CDK で Docker イメージを Lambda にデプロイする
AWS Lambda でコンテナイメージがサポートされました?
https://aws.amazon.com/jp/blogs/aws/new-for-aws-lambda-container-image-support/また、AWS CDK 1.76.0 で早速サポートされたのでデプロイしてみました。
https://github.com/aws/aws-cdk/releases/tag/v1.76.0# CDK プロジェクト作成
まずは CDK プロジェクトを作成します。今回は TypeScript で書きます。
“`zsh
mkdir cdk-lambda-container
cd cdk-lambda-container
cdk init –language=typescript
“`# Lambda Function 作成
作成されたファイルの中にある Stack を編集します。
DockerImageFunction のドキュメントは以下の URL です。
https://docs.aws.amazon.com/cdk/api/latest/do
【箇条書きで解説】Dockerに入門しよう!!
現在作成しているアプリケーションの開発環境にDockerを導入したものの、いまいち理解が進んでないと感じたので、備忘録も兼ねてこの記事を書きます。
また、具体的な使い方の部分は箇条書きではなく普通に書いています。
## Dockerとは?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/509690/cd089001-d7dc-7505-83a1-3d443f982546.png)
– [Docker inc](https://www.docker.com/company)によって開発されている
– `コンテナ型仮想環境`を開発・配置・実行するためのオープンソースプラットフォーム
– 異なるPCやサーバーであっても、簡単に同じ仮想環境を作成できる
– Go言語で書かれている### ワンポイント解説
元々は`ホスト型仮想化(VMWare、Virtual Boxなど)`が主流だったそうですが、現在は`コンテナ型仮想化`が主流です。![image.png](https://qi
Node.jsアプリのOpenID Connect認証連携
# はじめに
自作のNode.jsアプリをOpenID Connectプロバイダーと連携させて認証機能を実装するためのNode.jsアプリの作り方について説明します。全体の流れは以下の通りです。1. 前提の確認
2. OpenID Connectプロバイダーへのアプリの登録
3. Node.jsアプリのコーディング# 前提
この記事での環境の前提は以下の通りです。ただし、なるべく環境依存せず汎用的になるよう記事を書いています。コードの要所部分のみを説明しています。– Node.js
– この記事では、npmモジュールのpassport-ci-oidcを利用します。
– npmモジュールのexpressやpassportも利用しますが、前提知識の説明を省略いたします。
– OpenID Connectプロバイダー
– OpenID Connectとは何かなど前提知識の説明を省略いたします。
– どのプロバイダーでもアプリの作り方の大まかな流れは変わりませんが、プロバイダーが利用方法を細かくガイドしている場合があります。特にどのnpmモジュールを
platform.js のparse()に”てきとー”なUserAgentを入れたときの戻り値
“`
// 本来はUserAgentを入れるとこに’てきとー’をいれてみる
console.log(platform.parse(“てきとー”));// 結果
{
“description”: “てきとー”,
“layout”: null,
“manufacturer”: null,
“name”: null,
“prerelease”: null,
“product”: null,
“ua”: “てきとー”,
“version”: null,
“os”: {
“architecture”: null,
“family”: null,
“version”: null
}
}
“`
platform.js ver1.3.6
https://github.com/bestiejs/platform.js/
Promise のキャンセルについて
[ [English version](https://qiita.com/martinheidegger/items/3e6355e96e85fc1c841e) ]
JavaScript と Node.js についてのこの徹底した投稿では、[Promises][Promise] のキャンセルの歴史、なぜNode.jsに関係があるのか、そして [async/await][async-await] APIで使おうとしたときに注意すべきことについて学ぶことができます。
この投稿は、JavaScript の `Promise` API をよく理解していて、 `Node.js` の経験がある方のためのものです。
## 歴史
2014 年に [Promise][Promise] API がブラウザに導入されて以来、人々は Promise で他に何ができるかを調べていました。ブラウザに最初に登場した関連APIは、`HTTP` リクエストのための [fetch()][fetch] でした。
`HTTP` リクエストの問題は、サーバーのリソースを消費することであり、サーバーに送信されるリクエ
【Node.js × LINE WORKS API】API で BOT を登録する
LINE WORKS Advent Calendar 5日目!どうぞよろしくお願いします♪
前々からお知らせされていたのですが、今年の 9月に**一部の古いバージョンの API が使用できなくなりました。**
それでふと、前に自分が書いた記事を見てみたら、やっぱりというか古いバージョンでの記事でした。
[API を使って LINE WORKS BOT を登録する](https://qiita.com/kunihiros/items/bad2063ee4a8bb6e7dae)まぁ、記事を修正するよりは、Advent Calendar の時期ですし?
新しく記事を書きなおそうと思った次第なのです。(‘ω’)だって、2年まえの私は `async` `await` を使えなくて、非同期処理は全部 `Callback` でやってたんですよ( ゚Д゚)
おまけに [文字列内の変数は全部 `+` で結合](https://qiita.com/kunihiros/items/faf3ff58409ace27a6ed)してましたし。。。
あぁ、恥ずかしい。。。(ノωノ)前置きが長くなりまし
【備忘録】自分がフロントエンドで使っているツール
はじめまして、にへーと申します。
私は、フロントエンドエンジニアを経験後に専門学校講師を仕事にしています。
趣味は、コーディング。他の人の書いたソースを眺めていられるそんな人です。
今回、自分自身がフロントエンドを作っていく際に使っているツールをまとめておきます。
## 1.Visual Studio Code
前職で使っていたのですが、とにかく軽い。
Microsoftが開発しているので、TypeScriptとかとも相性がバッチリみたいです。アカウント連携が結構良くて、複数環境で開発を行っている人にはとても使いやすいと思います。
Windows、Ubuntu、Macを使う人にはもってこいです。## 2.NeoVim
Vimなどは使ったことがなかったのですが、最近使うように心がけています。
VSCodeなどGUIアプリケーションがない場合にも対応できるよう、現在勉強中です。プラグインもNeoVimは豊富にあるようなので、これから実験していこうと考えています。
## 3.Google Chrome Developer Tool
エンジニアの人からしたら「あたりまえ!
Everything about Cancellation of Promises
[ [日本語版 ](https://qiita.com/martinheidegger/items/6e8275d2de88174bc7e6) ]
In this **thorough** post about JavaScript and Node.js you can learn about the history of cancellation of [Promises][Promise]. Why it is relevant to Node.js and what you should be aware of when you try to use it with the [async/await][async-await] API.
This post is for you if you have a good insight into the `JavaScript` Promise API and some experience with `Node.js`.
## History
Ever since the [Promise][Promise] API wa
空いてる時間を気軽に共有出来るサービスを作ってみた
この記事は[CA21 Advent Calendar 2020](https://adventar.org/calendars/5308)に投稿する予定の記事です。
## 初めに
来年からインフラエンジニア(SRE)として働く予定のしがない学生です > [Twitter](https://twitter.com/_tetsuya28)
アドカレ3日目担当ということで今日はとあるサービスを勉強がてら作ってみたお話をしようと思います
あんまり1つずつの技術の深堀りはしないのでよろしくお願いします## 空き時間共有サービス
という訳で早速今回作ってみたサービスの紹介から
題名の通りなんですが、ミーティングや遊びなどの色々な場面で日程調整をすることがあると思うんですが、僕はその時間を列挙すると言う作業へのだるさを感じていて以前はGoogleカレンダーと連携して空き時間をリスト化出来るサービスを使っていたのですがどうしてもちゃんとしているサービスが故に僕の目的を果たすのにはToo muchな部分や、逆に足りないなと思う部分がありました
具体的には– 文字だけでは視認性が悪い
–