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 اینگونه خواهد بود:
شما توانستید اولی برنامه Nodejsخودتون را بنویسید.
NPM:
Nodejs به علت جذابیت هایی که دارد طرفدارن زیادی را جذب کرده و همین باعث شد کلا کد های زیادی با node نوشته شود. یکی از نتایج این قضیه ساخت یک package manager است که با استفاده از آن می توانید برنامه هایی که توسط node نوشته است را پیدا کرده و نصب کنید.
اسم این package manger خوب Npm است.
به طور مثال package بسیار جالب mysql رو با هم نصب می کنیم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
همچنین ببینید:
اجرای کد های جاوا اسکریپت در پروژه هایی همچون 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به طور مثال شما با کد زیر می توانید Nodejs را راه اندازی کنید و به همه درخواست Hello To Efazati Blog بگویید:
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
var http = require('http');کافی است در یک فایل مثلا test.js بگذارید و با دستور زیر اجرایش کنید:
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/’);
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');بعضی کتابخانه های استاندارد Node:
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.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
۹۱/۰۶/۲۲