ノードとは
Nodeは、ChromeV8エンジンに基づくJavaScriptコードランタイム環境です。
Node.jsの構成
JavaScript由:ECMAScript、DOM、BOM、
Node.jsは、ECMAScriptと、ファイル、ネットワーク、パスなど、Node環境によって提供されるいくつかの追加APIで構成されています。
ノードのダウンロード:公式Webサイトに直接アクセスしてインストールパッケージを見つけ、ノードの公式Webサイトにダウンロードします。
組み込みオブジェクトの概要
分類
グローバルオブジェクト:いつでもどこでもアクセスできます
コアオブジェクト:システムを要求し、インポートして使用します
カスタムオブジェクト:パスに従ってインポートするだけです
プロセス(グローバルオブジェクト)
-
process.envはオブジェクトであり、その属性名から特定の環境変数値を取得できます
特定の環境変数を設定して、さまざまなマシンを簡単に区別し、本番/開発環境でさまざまな効果を実行できるようにします
-
process.argvはコマンドラインパラメータを取得します
コマンドラインコマンド:setはシステム変数を表示できます
アプリケーションでは、ローカルマシンと実サーバーの間に違いがあるはずです
さまざまなマシンを差別化してさまざまな効果を実現する
ファイル名/ディレクトリ名(グローバル変数)
- __filename現在実行中のファイルのディレクトリ、絶対パスを取得します
- __dirname現在実行中のファイルの絶対パス
Node.js実装仕様
- CommonJS:バックエンド言語として実行するようにJavaScript言語を標準化する
- 能力は何ですか
- モジュールの書き方:Moudle
- モジュールに応じて、
- モジュールに依存する必要がありますmodule.exports =外部へのデータ
- ファイルはモジュールです
コアオブジェクトパス
1.紹介する
const path = require('path');
2.パス->パスの処理が非常に得意であり、パスにファイルがあるかどうかを判断する責任はありません
3.パスpath.join(__ dirname、 'a'、 'b')を結合して変更します
4.有効なパス文字列を受け取り、それをオブジェクトに置き換えます
path.parse
パスをオブジェクトとして操作するのに便利
5.パスオブジェクトを受け取り、それを文字列パスに変換します
path.format
6、path.resolve:絶対パスへの相対パス
let patha = path.parse(mypath);
pathb.base = 'mick';
mypath = path.format(patha);
ベースは、ファイル名またはサフィックスを変更する方法として使用できます
node.js
https://nodejs.org/dist/latest-v14.x/docs/api/
JavaScriptの欠点
ファイルの依存関係と名前の競合
ソフトウェアのモジュラー開発
関数はモジュールであり、複数のモジュールが完全なアプリケーションを形成でき、モジュールを引き離しても他のモジュールの動作には影響しません。
Node.jsのモジュラー仕様
Node.jsは、JavaScriptファイルがモジュールであり、モジュールで定義された変数と関数がデフォルトで外部から利用できないことを規定しています。
exportsオブジェクトは、モジュール内のメンバーをエクスポートするために使用でき、他のモジュールは、requireメソッドを使用してエクスポートできます。
モジュールをインポートするときのサフィックスは省略できます(.js)
別の方法:module.exports
exportsはmodule.exportsのエイリアスであり、2つが同時に変数を指している場合、module.exportsが優先されます。
システムモジュール
これらのAPIはモジュール方式で開発されているため、ノードのオペレーティング環境によって提供されるAPI。
システムモジュール:fsファイル操作
- ファイルの読み取りと書き込み
- その他の機能
- 拡張紹介
f:ファイルファイル、s:システムシステム
ファイルの内容を読む
非同期読み取り:後続のコードをブロックしません
fs.readFile( "ファイルパス/ファイル名" [、 'ファイルエンコーディング']、callback);コールバック:ファイルの読み取り結果を取得するためのコールバック関数
同期読み取り
fs.readFileSync(文件路径)
//读取上一级css下的文件
fs.readFile("../css/base.css","utf-8" (err,doc) => {
//如果文件读取发生错误,参数err的值为错误对象,否则err为null
//doc为文件内容
if(err == null){
console.log(doc);
}
})
注:ファイルの読み取りはハードディスクの操作であり、コールバック関数を呼び出す必要があります
ファイルの内容を書く
フォルダに出力
非同期の読み取りと書き込み
fs.writeFile( 'ファイルパス/ファイル名'、 '書き込まれたデータ'、[フラグ:a}(追加)、コールバック);
追加メソッド:appendFile( 'path'、 'data'、callback);
同期読み取りと書き込み
fs.writeFileSync(ファイルパス)
I:入力
コンピューターの場合、入力するだけです
O:出力
コンピュータの場合、データの表示/書き込みが出力されます
システムモジュールパスパス操作
パスの連結
どうして?異なるオペレーティングシステムのパスセパレータに一貫性がありません
文法:
path.join('路径','路径',...);
//导入path
const path = require('path');
const finalpath = path.join('public','uploads','avatar');
console.log(finalpath);
相対パスと絶対パス
ほとんどの場合、絶対パスを使用します。相対パスは、コマンドラインツールの現在の作業ディレクトリから相対パスである場合があるためです。
ファイルパスの読み取りまたは設定時に絶対パスを選択する
__dirnameを使用して現在のファイルの絶対パスを取得し、操作するファイルの名前を入力します