var fs = require('fs');
fs.readFile('/etc/passwd', function(err, buf) {
console.log(buf.toString()); // Se ejecuta cuando se termine de leer el archivo
});
console.log("Hello!"); //Se ejecuta sin espera
var fs = require('fs');
var contents = fs.readFileSync('/etc/passwd').toString();
console.log(contents); //esperamos por el resultado
console.log("Hello!"); //ejecucion bloqueada
* Mas info: http://goo.gl/un4pJw
var http = require("http");
http.createServer(function(req, resp) {
resp.writeHead(200, {"Content-Type": "text/html"});
resp.write("Hola Mundo");
resp.end();
}).listen(8888);
var http = require('http');
http.createServer(function (req, res) {
req.on('data',function(message){
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write(message);
res.end();
console.log(message.toString());
});
}).listen(80);
console.log('Server listening on port 80');
NodeJS - utiliza la implementacion de carga
modulos basado en CommonJS
// hello.js
console.log('Hello World');
// app.js
require('hello.js');
// bar.js
module.exports = function () {
console.log('bar!');
}
// app.js
var bar = require('./bar.js');
bar();
// doo.js
var Doo = function () {};
Doo.prototype.log = function () {
console.log('doo!');
}
module.exports = Doo;
// app.js
var Doo = require('./doo.js');
var doo = new Doo();
doo.log();
module.exports = (function() {
var text = "Hello world!"
var private= function() {
console.log("private method executed")
};
var public= function() {
console.log(text);
private();
};
return {
public: public
};
})();
module.exports = module;
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Hello World');
});
var server = app.listen(80, function () {
console.log('listening port: ', server.address().port);
});
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.post('/', function (req, res) {
res.send('Got a POST request');
});
app.put('/user', function (req, res) {
res.send('Got a PUT request at /user');
});
app.delete('/user', function (req, res) {
res.send('Got a DELETE request at /user');
});
var server = app.listen(80, function () {
console.log('listening port: ', server.address().port);
});
VS
Long-polling
Web Sockets
var app = require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res){
res.send('<h1>Hello world</h1>');
});
http.listen(80, function(){
console.log('listening on *:80');
});
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
</body>
</html>
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
http.listen(80, function(){
console.log('listening on *:80');
});
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('chat message', function(msg){
console.log('message: ' + msg);
io.emit('chat message', msg);
});
});
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="message" autocomplete="off" /><button>Send</button>
</form>
<script src="http://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#message').val());
$('#message').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
</script>
</body>
</html>