0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初心者による初心者のためのNode.js|製作途中だからどんどん書き加えていくよ

Last updated at Posted at 2021-09-19

#初心者のためのNode.js

初心者がNode.jsについて備忘録かねて、書いていく。
間違っている箇所あれば、教えていただけれると幸いです。

##Hello World

出力系統に関する話。
stdout(標準出力)する方法が2種類あるらしい。

console.log('Hello World');
console.info('Hello World');

このような感じで出力ができる。

##変数を定義する

変数はvar 変数名 = 初期値もしくはlet 変数名 = 初期値で作成できる。
詳しい違いが分からなかったが、ぱっと見てletの方が使い勝手がよさそう。
(場合によりけりらしいです)

var var_hello = 'HELLO';
let let_hello - 'HELLO'; //上書き不可能
const let_hello = 'HELLO'; //上書き可能

##コメントアウトする

1行のコメントアウトをする際には

//Hey!

複数行をするには

/*
Hey
Hey
Hey
*/

を使用する。

##演算子 TypeOf

何かの型を調べたいときはtypeofを使用する。

console.log('APPLE is a ' + typeof('ORANGE') + ' type.');

##標準入力からコマンドライン引数を受け取る場合

Node.jsには癖があるらしい。
例えばnode hoge.js 1 2と引数をつけて呼び出す
その際のインデックスが以下のようになる。

番号 中身
0 node
1 hoge.js
2 1
3 2

コマンドライン引数を読み取るにはprocess.argvを使用する。
よって、引数のみを取り出すならこのようなコードになる。

argv = process.argv;

for (var i = 2; i < argv.length; i++) {
	console.log(argv[i]);
}

##For分の作り方

普通の言語と何ら変わらない。

for (var i = n; i < N; i++) {
    <処理>
}

nは初期値、Nは最大値と考えて、置き換えよう!

##文字列を整数値に置き換える

進数に関しては、変換したい文字列が何進数で表記されたものかを定義する。

parseInt(<変換したい文字列>, <進数>);

##ファイルを読み込む

まず、readFileSyncを使う方法

const fs = require('fs');
const index = fs.readFileSync(<読み込みたいファイル>, "utf8");
console.log(index);

次に、readFileを使う方法
ifの中に以上がなかった時の処理を書く。
else ifの中に異常があった時の処理を書く。

fs.readFile(argv, (err, data_index) => {
	if (!err) {
		console.log(count)
	} else if (err) {
		console.log(err);
	}
});

##SHELLコマンドを使う

Shellコマンドを使うにはexecを使う
子プロセスを作成して、帰り値をstdoutに保存する

const exec = require('child_process').exec;
exec(<コマンド>, (err, stdout, stderr) => {
    if (err) {

        console.log(err);
    }
    console.log(stdout);
});

##HTTPリクエストを送り、サーバーからファイルを取ってくる

これでHTMLファイルを獲得できます。

let http = require('http');
http.get(<リクエストを送るURL>, (res) => {
    let html_data = ""
    res.on("data", index => {
        html_data = html_data + index
    })
    res.on("end", () => {
        console.log(html_data)
    })
}).on('error', function (err) {
    console.log(err.message);
});

受信したイベントの内容がdataenderrorだった時で条件分岐させてやります。

##パッケージを使う

コマンドnpmで、必要なパッケージをインストールできる。
パッケージを使いたいディレクトリに入って、以下コマンドを実行する

npm install <コマンド>

グローバルで使いたい場合には、-gオプションをつけると、どこでも使える。

##同期処理

複数のタスクを実行する際に一つずつ順番にタスクが実行される方式のこと それが同期処理。

let int_1 = 0;
let int2 = 0;

async function setInt(a, b) {
	int_1 = a;
	int2 = b;
	return true;
}

function sumInt() {
	console.log(int_1 + int2)
}

async function runProcess() {
	await setInt(1, 2);
	sumInt();
}

runProcess();

詳しく、このような流れになっている。

runProcess()が呼び出される
 ↓
 setInt(1, 2)が呼び出される
  変数に値が代入され、Trueが返されるまで待つ
 ↓
 sumIntが呼び出される
  値がSTDOUTで出力される

#参考にした記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?