เมธอด process.chdir() ใช้สำหรับเปลี่ยนไดเรกทอรีปัจจุบันของกระบวนการ Node.js จะข้อกลับข้อยกเว้น (exception) หากเกิดข้อผิดพลาดหรือกระบวนการล้มเหลว แต่จะไม่คืนค่าอะไรเมื่อสำเร็จ เช่น: อาจล้มเหลวเมื่อไดเรกทอรีที่ระบุไม่มีอยู่
ไวยากรณ์
process.chdir(directory)
พารามิเตอร์
directory – จะมีชื่อไดเรกทอรีที่จะอัปเดตแทนชื่อไดเรกทอรีเดิม
ตัวอย่าง
สร้างไฟล์ชื่อ chdir.js และคัดลอกโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ใช้คำสั่งต่อไปนี้เพื่อรันโค้ด:
node chdir.js
chdir.js
// โปรแกรม Node.js สาธิตการใช้ process.chdir()
// นำเข้าโมดูล process
const process = require('process');
// แสดงไดเรกทอรีทำงานปัจจุบัน
console.log("Present working directory: " + process.cwd());
try {
// อัปเดตด้วยไดเรกทอรีใหม่
process.chdir('../tutorialspoint');
console.log("Updated working directory is: " + process.cwd());
} catch (err) {
// แสดงข้อผิดพลาดหากมี
console.error("error occured while " + "changing directory: " + err);
}
ผลลัพธ์
C:\home\node>> node chdir.js Present working directory: /home/mayankaggarwal/mysql-test Updated working directory is: /home/mayankaggarwal/tutorialspoint
ตัวอย่างเพิ่มเติม
ลองดูตัวอย่างอีกหนึ่งกรณี:
// โปรแกรม Node.js สาธิตการใช้ process.argv
// นำเข้าโมดูล process
const process = require('process');
try {
// เปลี่ยนไดเรกทอรีด้วยชื่อด้านล่าง
process.chdir('../not/tutorialspoint');
console.log("New Directory has been succesfully updated");
} catch (err) {
// แสดงข้อผิดพลาดหากเกิดขึ้น
console.error("Error while changing directory", err);
}
ผลลัพธ์
C:\home\node>> node chdir.js
Error while changing directory { Error: ENOENT: no such file or directory, chdir '../not/tutorialspoint'
at process.chdir (internal/process/main_thread_only.js:31:12)
at Object.<anonymous> (/home/mayankaggarwal/mysql-test/process.js:9:9)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
errno: -2,
code: 'ENOENT',
syscall: 'chdir',
path: '../not/tutorialspoint' }