منبع اصلی نوشتار زیر در این لینک قرار دارد

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 Blog\\n\');
}).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:

 

 

همچنین ببینید:

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

 



به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد