Clone Git โปรเจค ExpressJS ลงมา Setup ที่เครื่อง localhost เจอปัญหา config is not defined

พูดคุยแลกเปลี่ยน ปัญหา การเขียน JavaScript เครื่องมือ AJAX Web 2.0 AJAX Framework jQuery และ Node.JS รวมถึง Framework Express ของ Node.JS ทำงานฝั่ง Server

Moderator: mindphp

ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21911
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Clone Git โปรเจค ExpressJS ลงมา Setup ที่เครื่อง localhost เจอปัญหา config is not defined

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ขั้นตอน หลังจาก Clone Git ลงมา
- รันคำสั่ง npm install
- รันคำสั่ง node app.js

ใช้ NodeJS เวอร์ชั่น 12.4.0

ปัญหาน่าจะเป็นเพราะไม่ได้ประกาศค่า config เริ่มต้น

Command ที่ Error
PS D:\xampp\htdocs\test> node app.js
D:\xampp\htdocs\test\app\lib\common.js:157
config = Object.assign(config, localConfigFile);
^

ReferenceError: config is not defined
at Object.getConfig (D:\xampp\htdocs\test\app\lib\common.js:157:32)
at Object.<anonymous> (D:\xampp\htdocs\test\app.js:35:23)
at Module._compile (internal/modules/cjs/loader.js:774:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
at Module.load (internal/modules/cjs/loader.js:641:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)
at internal/main/run_main_module.js:17:11

Code ที่ Error

โค้ด: เลือกทั้งหมด

const getConfig = () => {
    let localConfigFilePath = path.join(__dirname, '../config', 'settings-local.json');
    if(process.env.NODE_ENV == 'development'){
        config = JSON.parse(fs.readFileSync(path.join(__dirname, '../config', 'settings.json'), 'utf8'));
    }
    else if(process.env.NODE_ENV == 'test'){
        config = JSON.parse(fs.readFileSync(path.join(__dirname, '../config', 'settings-test.json'), 'utf8'));
    }
    else if(process.env.NODE_ENV == 'production'){
        config = JSON.parse(fs.readFileSync(path.join(__dirname, '../config', 'settings-production.json'), 'utf8'));
    }
    // let config = JSON.parse(fs.readFileSync(path.join(__dirname, '../config', 'settings.json'), 'utf8'));
    

    // Check for local config file and merge with base settings
    if(fs.existsSync(localConfigFilePath)){
        const localConfigFile = JSON.parse(fs.readFileSync(localConfigFilePath, 'utf8'));
        config = Object.assign(config, localConfigFile);
    }
    ....
JavaScript & Jquery Ajax & Node.JS-1.png
JavaScript & Jquery Ajax & Node.JS-1.png (235.57 KiB) Viewed 3528 times
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21911
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: Clone Git โปรเจค ExpressJS ลงมา Setup ที่เครื่อง localhost เจอปัญหา config is not defined

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

mindphp เขียน: 16/09/2021 2:21 pm ลองรันตามนี้

โค้ด: เลือกทั้งหมด

node bin\www
viewtopic.php?f=18&t=77694&p=225615#p225615
ลองทำตามแล้ว ขึ้น Error แบบเดียวกัน


แต่ตอนนี้แก้ปัญหาได้แล้วครับ โดยการไปเพิ่ม ตัวแปรของ environment ใน windows

ชื่อตัวแปร NODE_ENV กำหนดค่าเป็น development ก็สามารถรันได้แล้ว
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Clone Git โปรเจค ExpressJS ลงมา Setup ที่เครื่อง localhost เจอปัญหา config is not defined

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ถ้ารันบน Ubuntu หลายๆ app จะเกิดปัญหาเดียวกันนี้
วิธีแก้
เพิ่มคำสั่ง เพื่อเพิ่ม NODE_ENV เช่นเดียวกันดังนี้
เช่น

โค้ด: เลือกทั้งหมด

export NODE_ENV=development
ก่อน start app ใหม่อีกครั้ง

ถ้ารันใน mode production
Set ตามนี้

โค้ด: เลือกทั้งหมด

export NODE_ENV=production
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41131
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: Clone Git โปรเจค ExpressJS ลงมา Setup ที่เครื่อง localhost เจอปัญหา config is not defined

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

Note เพิ่มถ้า Restart ค่าที่ set ไว้ใน Ubuntu

โค้ด: เลือกทั้งหมด

export NODE_ENV=production
จะหาไป จะมีผลกับ เครื่องที่รันหลายๆ app เราต้องมาสร้าง ENV ใหม่
ปัญหาเจอกับการรัน node.js แบบธรรมดา หรือรันผ่าน pm2


ปัญหานี้ถ้ารัน node.js ผ่าน Openlitespeed บน cyberpanel จะไม่เจอปัญหา
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 44