goo blog サービス終了のお知らせ 

職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

データーベースとは

2024年11月04日 | Node.js

 データーベース入門

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
Node.js;v20.18.0
バックエンドフレームワーク:Express.js
npmパッケージ:nodemon

【データーベースとは】
Data(データ)とBase(基地)を起原とする用語で、文字通り「データの集約基地」、つまりさまざまなデジタルデータを収容する論理的領域を指し、更にそれらのデータを管理したり、運用することが出来る事がもの

データベースの種類】
1.階層型
データのことをノードと呼び、あるノードから別のノードを派生させて、ツリー上に展開してデータを保存しているデータベースのことです。階層型データベースでは、派生前のデータを親ノード、派生後のデータを子ノードと呼び、親ノードは複数個のノードを持つことができ、子ノードは1つだけ親ノードを持ちます。

2.ネットワーク型
ネットワーク型データベースは、階層型データベースと同じようにデータをノードで表し、あるノードから別のノードを派生させて、ノードのつながりが網目状になるように展開されるデータベースのことです

3,関係型(リレーショナルデータベース)
リレーショナルデータベースは、レコードという行とフィールドという列で構成され、テーブルと呼ばれる表形式のデータベースです。表形式のデータを互いに関連付けて、データ同士の関連性から新しい表を作成したりでき、エクセルを扱うように使用できるので、リレーショナルデータベースはさまざまな場面で使用されています

 

4.NoSQL
データベースを操作するための言語であるSQLを使用せず、リレーショナルデータベースで扱うのが難しい大規模なデータに対応するためのデータベースのことです。

【NoSQLの種類】
1.キーバリュー型:Pythonの辞書型のように、キーと値がペアである特徴を有する基本的かつ単純なNoSQLの形式。

2.カラム指向型:キーバリュー型の値の部分が1つ以上のカラム(列)になったもの。構造はRDBに近い

3.ドキュメント指向型:キーに紐づくデータをドキュメント形式で格納できる。書き方の自由度が最も高く、複雑な要素を持つデータを格納できる。

4.グラフ指向型:「ノード」と呼ばれるデータの実体と、「エッジ」と呼ばれるノードどうしの関係性を示す情報で構成されている。

【MongoDBとは】
NoSQLのデータベースの中では世界中で最も広く活用されている。NoSQLの種類の中ではドキュメント指向型に該当し、データを「ドキュメント」にJSONに類似した形式で格納して管理する

MongoDBのアーキテクチャは以下の通り。

1.RDBのようにレコードをテーブルに格納するのではなく、「ドキュメント」.と呼ばれる構造的データをJSONに類似している形式で表現し、そのドキュメントの場合を「コレクション」で管理する

2.コレクションはスキーマレスなドキュメントで格納され、任意のフィールドを好きなときに追加できる

3.ドキュメントには複雑な階層構造を持たせられる。それらの構造に含まれるフィールドを指定したクエリやインデックスの生成も簡単な指定で行える

4.ソート・集計や値の検索が得意である。

【MongoDBの特徴】

  • ドキュメント形式でデータを保存できる――MongoDBの公式サイトによると、ドキュメント形式はあらゆるプログラミング言語でデータを保存したり取得したりできるので迅速に開発を進められるそうだ。
  • デプロイの選択肢が豊富――MongoDBはMongoDB Atlasを通じて主要なクラウド(AWSやGCPなど)で無料で活用できる。
  • すぐに始められる――MongoDBは、一回インストールすればすぐにコードを書き始められる。
  • 大容量のデータに対応できる
  • エコシステムが成熟しており、情報量が豊富
  • 公式ドキュメントやチュートリアルなどの開発に関するテクニックが豊富。初心者でも苦なく学びやすい。

【MongoDBの問題点】

ただし、MongoDBにも主に以下のような問題点がある。

  • SQLが使えない。データベースの処理・操作はJavaScriptで行う。
  • RDBのように高度な結合操作ができない。
  • トランザクション処理が非常に煩雑。

複数のトランザクションを必要とするクエリが必要になる場合、MongoDBでの開発は適さない。MongoDBはどの開発にも通用する万能薬ではないので、システムに合わせて適材適所でRDBと使い分けなければならない。



コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

HTMLとテンプレートエンジン

2024年11月01日 | Node.js

HTMLとテンプレートエンジン

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
Node.js;v20.18.0
バックエンドフレームワーク:Express.js
npmパッケージ:nodemon

【HTMLを扱うには】
①、先ず「sever.js」にコード追加する
const express = require("express");
const app = express();
const port = 3000;
const userRouter = require("./routes/user");

//HTMLファイルを扱う
app.use(express.static("public"));
 
②「public」フォルダを作る

③そのフォルダに「index.html」ファイルを作り、コードを書く
リロードする

「style.css」を追加する。
コード
body {
 background-color: greenyellow;
}
リロードする


【ejs:テンプレートエンジンの使い方】
1、インストールするには、次のようにコマンドを打つ
PS D:\Express\Express-Tutorial> npm i ejs

added 12 packages, and audited 107 packages in 3s

19 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2、「package.json」ファイルに表示される

 "dependencies": {
    "ejs": "^3.1.10",
    "express": "^4.21.1",
    "nodemon": "^3.1.7"
  }
 
3,「sever.js」ファイルを下記のように書き換える
//HTMLファイルを扱う
//app.use(express.static("public"));

//[ejs]テンプレートエンジン
app.set("view engine","ejs");

app.get("/",(req,res) => {
    res.render("index",{text:"NodesjsとExpress"});
});

4、「views」フォルダを作る
 
5,このフォルダの中に「index.ejs」ファイルを作り、下記のコードを書く
表示

6,「index.ejs」ファイルのコードを書き換える

表示

VSCodeに、EJS 言語サポートをプラグインすると、楽にコードが書けるようになる。
 
【ミドルウェアの使い方】
ミドルウェアとは、ミドルウェアとは、”middle”と名の付く通り、アプリケーションとOSの中間的な処理を行うソフトウェアのことです。
クライアントからリクエストを送り、サーバーからレスポンスが返される中、クライアントがリクエストする際、事前にサーバーがとう成っているのかチェックをしたい場合ある、そのため、リクエスト中に、ミドルウェアを使う必要がある。

//ミドルウェア
function mylogger(req,res,next) {
    // 「/」を表示させる
   console.log(req.originalUrl);
    next();
}
next()→ミドルウェアは引数にnextを受け取り、next()を呼び出すことで次に設定したミドルウェアを実行します。
注意するポイントとして、next()でreturnを指定していない場合は、1番目のミドルウェアのnext()以降に書いた処理が実行されます。

1.ミドルウェアを書く

//一番上に書く
app.use(mylogger);
 
全コード

3,リロードする
/[nodemon] starting `node server.js`
サーバーが起動しました
/

以上
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

幾つものブラウザを開くには

2024年10月29日 | Node.js

幾つのブラウザを開くには

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
Node.js;v20.18.0
Express.js
nodemon



【サーバを作る】
フォルダ「EXPRESS_modules」を作る。
1.初期化をする。npm init -y

2.Express,nodemonをインストールする
npm i Express nodemon

3.「package.json」を見る

{
  "name": "express-tutorial",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"nodemon server.js" ←このコマンドを追加すると再起動が可能に
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "express": "^4.21.1", 
    "nodemon": "^3.1.7"
  }
}

3,サーバを作る
「sever.js」ファイルを作り、コードを書く
const express = require("express");
const app = express();
const port = 3000;
 
  app.get("/",(req,res) => {
    console.log("hello express");
  });
 
app.get("/",(req,res) => {
    res.send("ユーザーです");
 });

 
app.listen(port,() => console.log("サーバーが起動しました"));

4.表示

PS D:\Express\Express-Tutorial> npm run dev

> express-tutorial@1.0.0 dev
> nodemon server.js

[nodemon] 3.1.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node server.js`
[nodemon] starting `node server.js`
サーバーが起動しました
hello express

5,下記のように変更する

//app.get("/",(req,res) => {
   // console.log("hello express");
 // });
 
app.get("/user",(req,res) => {
    res.send("ユーザーです");
 });
 
ブラウザに、「localhost:3000/user」を入れると、下記のように表示される
6.更に追加する
app.get("/user",(req,res) => {
    res.send("ユーザーです");
 });
下記のコードを追加する
 app.get("/user/info", (req,res) => {
    res.send("ユーザー情報です。");
 });
ブラウザに、「localhost:3000/user/info」を入れると、下記のように表示される。
 
【user/以下のアドレスを変える度、表示データを変える】
1.routesフォルダを作る
2.そのフォルダの中に「user.js」ファイルを作り、下記のコードを書く
const express = require("express");
const router = express.Router();

//app→routerに変更する
router.get("/",(req,res) => {
    res.send("ユーザーです");
 });
 
//app→routerに変更する
 router.get("/info", (req,res) => {
     res.send("ユーザー情報です。");
  });

//ランダムな文字列
  router.get("/:id", (req, res) =>{
   res.send(`${req.params.id}のユーザー情報を取得しました`);
  });

  module.exports = router;
3.「server.js」
const express = require("express");
const app = express();
const port = 3000;
const userRouter = require("./routes/user");//追加


//ルーティング
app.use("/user",userRouter);


app.listen(port,() => console.log("サーバーが起動しました"));
5.ブラウザに、「localhost:3000/user/1234」を入れると、下記のように表示される。
Htmlのレンダリング
 
 

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

再起動ツール:Nodemon

2024年10月27日 | Node.js

再起動ツール:Nodemon

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
Node.js;v20.18.0
Express.js

【nodemonとは】
ディレクトリ内のファイルの変更を検出すると、自動的にnodeアプリケーションを再起動することで、node.jsベースのアプリケーションの開発を支援するツールです。

【インストール方法】
コマンドプロンプトより、カレントディレクトリに移動する。
npmコマンドを使って、ローカルインストールする
D:\myapp> npm i  nodemon --save-dev

「package.json」ファイルを開ける

{
  "name": "myapp",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"nodemon index.js"←追加する
  },
  "author": "",
  "license": "ISC",
  "description": "",
 //変更される
  "dependencies": {
    "express": "^4.21.1",
    "nodemon": "^3.1.7"
  }
}

※scriptsに実行したいコマンドを書く必要がある。
ここでは、再リロードするためのdevコマンドを定義している。

【実行】
コマンドを下記のように書いたら、リターンする

PS D:\myapp> npm run devnpm run コマンド

> myapp@1.0.0 dev
> nodemon index.js

[nodemon] 3.1.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node index.js`
Example app listening on port 3000

「index,js」を変更する
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('nodemonを入力した')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

【Web表示】
 http://localhost:3000/ を再ロードする

以上




 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Expressの入門

2024年10月27日 | Node.js

フレームワーク:Express

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
Node.js;v20.18.0

【Expressとは】
Node.jsで利用できるWebアプリケーションフレームワークです。Webアプリケーションとは、インターネット上で利用するサービスを動かすシステムです。

フレームワークとは、システム開発時によく使う機能や設計などを予め用意してあるアプリケーションです。つまり、Webアプリケーションを開発する上では、より短いプログラムで効率よく開発することができます。

【Express.jsの使い方】
1. プロジェクトの作成
新しいディレクトリ「myapp」を作成し、そのディレクトリでnpmプロジェクトを初期化します。

C:\Users\Owner>d:

D:\>mkdir myapp

D:\>cd myapp

ディレクトリ初期化する
D:\myapp>npm init
色々と、聞いてくるが、すべてリターンを押す
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help init` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (myapp)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)


About to write to D:\myapp\package.json:

{
  "name": "myapp",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}

最後はyを押すと、package.jsonが作られて終了する
Is this OK? (yes) y

2、Express.jsのインストール
npmコマンドを使って、Express.jsをインストールする。

D:\myapp>npm install express

added 65 packages, and audited 66 packages in 5s

13 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

D:\myapp>

3、サーバーの作成
カレントディレクトリ「myapp」上に,「index.js」ファイルを作り、コードを書く

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  console.log(”サーバーが起動しました”);
  res.send('Hello Express!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})
 
4.アプルの実行
node index.js
下記の表示が返される

サーバーが起動しました
Example app listening on port 3000
 
5.ブラウザ表示
ブラウザーに http://localhost:3000/ をロードして、出力を確認します
 
6、サーバを停止させる

「Cterl」ボタンと、「c」ボタンを同時に押す

その他の起動方法
package.jsonファイルに

"scripts": {
    "start": "node index.js", ←これを追加する
    "test": "echo \"Error: no test specified\" && exit 1"
  },

7,コマンド起動
D:\myapp>npm start

> myapp@1.0.0 start
> node index.js
※「npm start」は、package.jsonファイルに定義されたstartスクリプトを実行します。

サーバーが起動しました
Example app listening on port 3000

このように表示されたら
 http://localhost:3000/ にアクセスすると、同じように表示される

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする