完整程式碼,請洽: https://github.com/Zrn-code/Node-js-tutorial/tree/node-02

# node 基本語法

# 輸出 console.log()

使用 console.log() 可以在 console 中輸出變數

test.js
const name = 'yoshi';
console.log(name);

運行結果為:

終端機
PS C:\Users\user\Documents\tuts\node>node test.js //運行檔案
yoshi //輸出結果

# 箭頭函式 () => { }

當我們只想設定一個函式,並且不想打太多字宣告時,我們可以使用箭頭函式。
() 內部設定參數, { } 內部是函數體。

test.js
const greet = (name) => {
    console.log(`hello, ${name}`);
} 
greet('Zrn');
greet('Club');
終端機
PS C:\Users\user\Documents\tuts\node>node test.js
hello, Zrn
hello, Club

# 全域變數

global.js
// 只運行一次
setTimeout(() => {
    console.log(`in the timeout`);
},3000);
// 一直持續運行
const int = setInterval(()=>{
    console.log('in the interval');
},1000);
終端機
PS C:\Users\user\Documents\tuts\node>node global.js
in the interval // 第一秒
in the interval // 第二秒
in the timeout  // 第三秒 
in the interval // 第三秒
in the interval // 第四秒
in the interval // 第五秒
in the interval // 第六秒

# __dirname__filename

  • _dirname 可以得到該運行檔案儲存的位置
  • _filename 可以得到該運行檔案的位置
gloabal.js
console.log(__dirname);  // 路徑名 
console.log(__filename); // 檔案名
終端機
PS C:\Users\user\Documents\tuts\node>node global.js
C:\Users\user\Documents\tuts\node
C:\Users\user\Documents\tuts\node\global.js

# 模組 (module) 與要求 (require)

# 簡單示範

module.js 檔案中,我們可以用 require 將同層的 people.js 的內容拉到 module.js 裡面運行。

module.js
const xyz = require('./people');
people.js
const people = ['Zrn','ryu','chun','Steven'];
console.log(people); // 輸出 people 陣列

在此時終端機上運行 module.js 的內容,會運行 people.js 的內容。

終端機
PS C:\Users\user\Documents\tuts\node>node module
['Zrn','ryu','chun','Steven']

# 回傳檔案 exports

module.exports 可以使運算完的檔案有個回傳值,回傳給主檔案。

people.js
const people = ['Zrn','ryu','chun','Steven'];
console.log(people);
module.exports = people; // 將 people 這個陣列回傳出去
module.js
const xyz = require('./people'); //let xyz = people 陣列
console.log(xyz); // 輸出 xyz = 輸出 people 陣列
終端機
PS C:\Users\user\Documents\tuts\node>node module
['Zrn','ryu','chun','Steven'] //console.log(people)
['Zrn','ryu','chun','Steven'] //console.log(xyz)

# 檔案系統

fsNode.js 的預設模組,可以做檔案相關的運算。

# 讀入檔案 readFile ()

blog.txt
I am a good leader.
file.js
const fs = require('fs');
// 讀入檔案
fs.readFile('./docs/blog.txt', (err, data) =>{
    if(err) // 如果有出錯的話
        console.log(err); // 就報錯
    else // 否則
        console.log(data.toString()); // 將檔案內容轉成字串形式輸出
});
終端機
PS C:\Users\user\Documents\tuts\node>node file.js
I am a good leader.

# 改寫 / 新增檔案 writeFile ()

# 改寫

file.js
const fs = require('fs');
// 改寫檔案
fs.writeFile('./docs/blog.txt','Hello, world',()=>{
    console.log('file was written.'); // 改寫完後,console 會輸出 file was written.
});
終端機
PS C:\Users\user\Documents\tuts\node >node file
file was written.

當程式碼運行結束後, blog.txt 的內容就會變為 Hello, world

# 新增

如果指定的該檔案不存在時,就會新增一份出來

file.js
const fs = require('fs');
// 新增檔案
fs.writeFile('./docs/blog2.txt','Hello, world again.',()=>{
    console.log('file was written.');
});
終端機
PS C:\Users\user\Documents\tuts\node >node file
file was written.

此時,該 docs 資料夾中就會有 blog2.txt 資料,並且內容為 Hello, world again.

# 創建 / 刪除資料夾 mkdir () /rmdir ()

file.js
const fs = require('fs');
// 創建資料夾
if( !fs.existsSync('./assets' )){ // 如果 ./assets 路徑不存在
    fs.mkdir('./assets',(err)=>{    // 就創建一個資料夾
        if(err) 
            console.log(err);
        console.log('folder created'); // 如果創建成功就輸出 folder created
    });
} else { // 否則,刪除資料夾
    fs.rmdir('./assets',(err)=>{ 
        if(err)
            console.log(err);
        console.log('folder deleted'); // 如果刪除成功就輸出 folder deleted
    });
}
file.js
const fs = require('fs');
// 刪除檔案
if(fs.existsSync('./docs/blog2.txt')){ // 如果 blog2.txt 存在
    fs.unlink('./docs/blog2.txt',(err)=>{ // 就將其刪除
        if(err) 
            console.log(err);
        console.log('file deleted'); // 如果刪除成功就輸出 file deleted
    });
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay