#初心者のための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);
});
受信したイベントの内容がdata
とend
とerror
だった時で条件分岐させてやります。
##パッケージを使う
コマンド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で出力される
#参考にした記事