نقطه ویرگول;

هر از گاهی از هر چیزی

هر از گاهی از هر چیزی

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 استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی