<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Node.js on Gosem Log</title><link>https://semooze.github.io/tags/node.js/</link><description>Recent content in Node.js on Gosem Log</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 14 Feb 2016 12:35:00 +0700</lastBuildDate><atom:link href="https://semooze.github.io/tags/node.js/index.xml" rel="self" type="application/rss+xml"/><item><title>Hello Node.js !</title><link>https://semooze.github.io/posts/2016-02-14-what-is-nodejs/</link><pubDate>Sun, 14 Feb 2016 12:35:00 +0700</pubDate><guid>https://semooze.github.io/posts/2016-02-14-what-is-nodejs/</guid><description>&lt;h1 id="nodejs-คอ-">Node.js คือ ?&lt;/h1>
&lt;p>&lt;a href="https://nodejs.org/en/">Node.js&lt;/a> ไม่ใช่ภาษาโปรแกรมใหม่แต่อย่างใด แต่เป็น platform ที่ทำให้สามารถ รัน Java script บนฝั่งเซิร์ฟเวอร์ได้ โดยเพิ่มเติมไลบรารี่ที่เกี่ยวข้องกับการจัดการไฟล์ การรับส่งข้อมูล และอื่นๆ&lt;/p>
&lt;h1 id="nodejs-เกดขนไดอยางไร-">Node.js เกิดขึ้นได้อย่างไร ?&lt;/h1>
&lt;p>Ryan Dahl เขียน Node.js ขึ้นในปี ค.ศ. 2009 โดย Node ทำงานอยู่บน V8 JavaScript engine&lt;/p>
&lt;h1 id="v8-javascript-engine-คออะไร-">V8 JavaScript engine คืออะไร ?&lt;/h1>
&lt;p>เป็น Javascript engine ที่เขียนขึ้นด้วยภาษา C++ นำมาใช้ใน Google &lt;a href="https://developers.google.com/v8/">chrome browser&lt;/a>&lt;/p>
&lt;h1 id="ระบบของ-nodejs">ระบบของ Node.js&lt;/h1>
&lt;p>&lt;strong>Single thread&lt;/strong>&lt;/p>
&lt;p>การทำงานจะใช้เพียง Thread เดียว
*หากไม่ได้ใช้ module &lt;a href="https://nodejs.org/api/cluster.html">cluster&lt;/a> หรือ &lt;a href="https://www.npmjs.com/package/webworker-threads">webworker-threads&lt;/a>&lt;/p>
&lt;p>&lt;strong>Event-driven&lt;/strong>&lt;/p>
&lt;p>การทำงานจะเป็นแบบ &lt;a href="http://code.danyork.com/2011/01/25/node-js-doctors-offices-and-fast-food-restaurants-understanding-event-driven-programming/">Event-based&lt;/a> คือ จะทำงานตามที่ได้รับมอบหมายเพียงอย่างเดียว ไม่มีการรอผลลัพธ์จากการทำงานที่ไม่เกี่ยวข้อง ตัวอย่างเช่น พยาบาลคนหนึ่งมีหน้าที่แจกแบบฟอร์มตรวจสุขภาพ และบันทึกข้อมูลลงคอมพิวเตอร์ เมื่อมีผู้ป่วยมาเข้าคิวเพื่อรับแบบฟอร์ม พยาบาลจะแจกแบบฟอร์มให้ หลังจากได้รับแบบฟอร์มแล้วเขาต้องไปตรวจสุขภาพตามห้องตรวจต่างๆด้วยตัวเอง ระหว่างนี้พยาบาลจะไม่รอแต่จะแจกแบบฟอร์มให้คนถัดไปทันที เมื่อชายคนนั้นตรวจสุขภาพครบทุกอย่างแล้วจึงจะมาเข้าคิวอีกครั้งเพื่อให้พยาบาลบันทึกลงคอมพิวเตอร์&lt;/p>
&lt;p>&lt;strong>Non-blocking I/O&lt;/strong>&lt;/p>
&lt;p>คำสั่งที่เกี่ยวข้องกับ I/O เช่น คิวรี่ฐานข้อมูล เรียกดูข้อมูลจากเว็บไซต์เขียนหรืออ่านไฟล์ จะมีการทำงานแบบ asynchronous คือไม่มีการหยุดการทำงาน(block) เพื่อรอผลลัพธ์จากคำสั่งเหล่านี้&lt;/p></description></item></channel></rss>