Nodejs

۱۳۹۱/۰۶/۲۲

در معرفی Nginx توضیح دادم که event-driven, non-blocking یعنی چه… ساختاری که با event که همان درخواست هست جوابگوی درخواست ها هست.
اجرای کد های جاوا اسکریپت در پروژه هایی همچون CommonJs دیده شده بود ولی با اینکه javaScript زبانی مجزا از مرورگر بود (با اینکه به مدیریت نت اسکیپ طراحی شد ولی کاملا مجزا بود ولی با دادن LiveScript توسط netscape یا jScript توسط IE خیلی به عنوان زبانی که فقط برای مرورگر است دیده شده است) کمی غریب دیده میشدند. ایده کلی این بود که جاوا اسکریپت مختص مرورگر نیست.

Nodejs در حقیقت با استفاده از V8 که engine مربوط به chrome است کار می کند.

Nodejs پلتفرمی است بر مبنای موتور جاوا اسکریپت کروم که به منظور ایجاد برنامه های سریع و گسترش پذیر به وجود آمده است. Nodejs از مدل رویدادگرا و non-blocking برای انجام عملیات I/O بهره می برد. از این‌رو Nodejs یک پلتفرم سبک و کارا برای پیاده سازی برنامه های Real-time و مبتنی بر داده است که می توانند به راحتی در سرورهای نامتمرکز اجرا شوند.

طریقه نصب:
در کل در اکثر دیسترو ها package مربوطه وجود دارد و خیلی راحت می توانید نصب کنید. به طور مثال در Archlinux اینگونه خواهد بود:

efazati@KaraOS ~ % sudo pacman -S nodejs

resolving dependencies...
looking for inter-conflicts...

Targets (1): nodejs-0.6.14-1

Total Download Size:    2.79 MiB
Total Installed Size:   14.21 MiB

Proceed with installation? [Y/n]
:: Retrieving packages from community...
 nodejs-0.6.14-1-x86_64                         2.8 MiB  42.5K/s 01:07 [##...##] 100%
(1/1) checking package integrity                                       [##...##] 100%
(1/1) loading package files                                            [##...##] 100%
(1/1) checking for file conflicts                                      [##...##] 100%
(1/1) checking available disk space                                    [##...##] 100%
(1/1) installing nodejs                                                [##...##] 100%
Optional dependencies for nodejs
    openssl: TLS support

به طور مثال شما با کد زیر می توانید Nodejs را راه اندازی کنید و به همه درخواست Hello To Efazati Blog بگویید:

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello To Efazati Blogn');
}).listen(1337, '127.0.0.1');
console.log(‘Server running at http://127.0.0.1:1337/’);

کافی است در یک فایل مثلا test.js بگذارید و با دستور زیر اجرایش کنید:

node example.js
Server running at http://127.0.0.1:1337

حالا صفحه شما اجرا می شود
شما توانستید اولی برنامه Nodejsخودتون را بنویسید.

NPM:

Nodejs به علت جذابیت هایی که دارد طرفدارن زیادی را جذب کرده و همین باعث شد کلا کد های زیادی با node نوشته شود. یکی از نتایج این قضیه ساخت یک package manager است که با استفاده از آن می توانید برنامه هایی که توسط node نوشته است را پیدا کرده و نصب کنید.

اسم این package manger خوب Npm است.

به طور مثال package بسیار جالب mysql رو با هم نصب می کنیم

npm install mysql

بعد از نصب یک فایل mysql.js درست کنیم و کد زیر را بزنیم:


var mysql = require('mysql');
var TEST_DATABASE = nodejs_mysql_test';
var TEST_TABLE = 'test';
var client = mysql.createClient({
  user: 'root',
  password: 'root',
});
 
client.query('CREATE DATABASE '+TEST_DATABASE, function(err) {
  if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) {
    throw err;
  }
});
 
// If no callback is provided, any errors will be emitted as `'error'`
// events by the client
client.query('USE '+TEST_DATABASE);
 
client.query(
  'INSERT INTO '+TEST_TABLE+' '+
  'SET title = ?, text = ?, created = ?',
  ['super cool', 'this is a nice text', '2010-08-16 10:00:23']
);
 
client.query(
  'SELECT * FROM '+TEST_TABLE,
  function selectCb(err, results, fields) {
    if (err) {
      throw err;
    }
 
    console.log(results);
    console.log(fields);
    client.end();
  }
);

بعضی کتابخانه های استاندارد Node:

  • Synopsis
  • Globals
  • STDIO
  • Timers
  • Modules
  • C/C++ Addons
  • Process
  • Utilities
  • Events
  • Buffer
  • Stream
  • Crypto
  • TLS/SSL
  • String Decoder
  • File System
  • Path
  • Net
  • UDP/Datagram
  • DNS
  • HTTP
  • HTTPS
  • URL
  • Query Strings
  • Readline
  • REPL
  • VM
  • Child Processes
  • Assertion Testing
  • TTY
  • ZLIB
  • OS
  • Debugger
  • Cluster
  • همچنین ببینید:

    node.js http://www.nodejs.org/
    node.js کاربران ایرانی nodejs -> http://nodejs.ir/
    The Node Beginner Book » A comprehensive Node.js tutorial -> http://www.nodebeginner.org/
    node node -> http://nodenode.com/
    nodejs-fa | Google Groups -> http://groups.google.com/group/nodejs-fa?pli=1
    Streaming file uploads with node.js » Debuggable – Node.js Consulting -> http://debuggable.com/posts/streaming-file-uploads-with-node-js:4ac094b2-b6c8-4a7f-bd07-28accbdd56cb

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: