Menu

Saturday, June 24, 2017

[NodeJS] สรุปสิ่งที่ต้องระวังสำหรับ NodeJS Packages: Mongoose
[NodeJS] Warning for NodeJS Packages: Mongoose

เมื่อสัปดาห์ที่ผ่านมา เจอปัญหาเกี่ยวกับ node packages แบบรายวันเลย โดยเฉพาะ mongoose เลยขอบันทึกเก็บไว้หน่อย
  • Method ของ Mongoose บางอัน return Promise บางอัน return Thenable
    • พวก save, create จะ return Promise
    • พวก findXXX จะ return Thenable
    • พวกที่ return Thenable สามารถใช้ exec() ต่อ เพื่อให้ return Promise ได้
    • จะใช้อันไหนไปเช็คในเอกสารดูอีกทีนะ (Thenable ใช้ .catch ไม่ได้นะจ๊ะ)
  • Moment เวลาเซฟเป็น object ผ่าน Mongoose มันเซฟเป็นค่าตัวเลข (เดาว่า Unix Timestamp) เวลาจะใช้ก็อย่าลืมแปลงกลับไปเป็น Moment ก่อนนะ
    • ถ้าอยากให้เซฟเป็นวันที่เลย ก็ใช้ toDate() ก่อนเซฟ มันจะเซฟเป็นแบบ ISODate 
  • Error ของ Promise ถ้า catch ไว้แล้วใช้ JSON.stringify(error) จะได้ "{}" เสมอ ไม่แน่ใจว่าเป็นเฉพาะ error ของ Mongoose หรือเปล่า ถ้าอยากได้ข้อความ error ก็ต้องใช้ error.message แทนนะ