aboutsummaryrefslogtreecommitdiff
path: root/files/pt-pt/learn/server-side/node_server_without_framework/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-pt/learn/server-side/node_server_without_framework/index.html')
-rw-r--r--files/pt-pt/learn/server-side/node_server_without_framework/index.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/files/pt-pt/learn/server-side/node_server_without_framework/index.html b/files/pt-pt/learn/server-side/node_server_without_framework/index.html
new file mode 100644
index 0000000000..85bd786b58
--- /dev/null
+++ b/files/pt-pt/learn/server-side/node_server_without_framework/index.html
@@ -0,0 +1,94 @@
+---
+title: Servidor de Node.js sem uma framework
+slug: Learn/No-servidor/Servidor_node_sem_framework
+tags:
+ - JavaScript
+ - Nodo
+ - Precisa de Conteúdo
+ - Servidor
+ - sem estrutura
+translation_of: Learn/Server-side/Node_server_without_framework
+---
+<div>{{LearnSidebar}}</div>
+
+<p> </p>
+
+<p class="summary">Este artigo fornece um servidor de ficheiros estático simples com Node.js puro, sem a utilização de uma framework.</p>
+
+<p><a href="https://nodejs.org/en/">NodeJS</a> tem muitas frameworks para ajudá-lo a ter o seu servidor configurado e a funcionar.</p>
+
+<ul>
+ <li><a href="http://expressjs.com/">Express</a>: uma framework mais utilizada.</li>
+ <li><a href="https://hapijs.com/">Hapi.js</a>: uma framework rica para criar aplicações e serviços</li>
+ <li><a href="https://www.totaljs.com/">Total</a>: a framework de Node.js "tudo-em-um", que não depende de qualquer outra framework, ou módulo.</li>
+</ul>
+
+<p>Estas não irão corresponder a todas as situações. Um programador pode precisar de criar o seu próprio servidor sem outras dependências.</p>
+
+<h2 id="Exemplo">Exemplo</h2>
+
+<p>Um servidor de ficheiros estático simples, criado com Node.js:</p>
+
+<p> </p>
+
+<pre class="brush: js">var http = require('http');
+var fs = require('fs');
+var path = require('path');
+
+http.createServer(function (request, response) {
+ console.log('request ', request.url);
+
+ var filePath = '.' + request.url;
+ if (filePath == './') {
+ filePath = './index.html';
+ }
+
+ var extname = String(path.extname(filePath)).toLowerCase();
+ var contentType = 'text/html';
+ var mimeTypes = {
+  '.html': 'text/html',
+ '.js': 'text/javascript',
+ '.css': 'text/css',
+ '.json': 'application/json',
+ '.png': 'image/png',
+ '.jpg': 'image/jpg',
+ '.gif': 'image/gif',
+ '.wav': 'audio/wav',
+ '.mp4': 'video/mp4',
+ '.woff': 'application/font-woff',
+ '.ttf': 'application/font-ttf',
+ '.eot': 'application/vnd.ms-fontobject',
+ '.otf': 'application/font-otf',
+ '.svg': 'application/image/svg+xml'
+ };
+
+ contentType = mimeTypes[extname] || 'application/octet-stream';
+
+ fs.readFile(filePath, function(error, content) {
+ if (error) {
+ if(error.code == 'ENOENT'){
+ fs.readFile('./404.html', function(error, content) {
+ response.writeHead(200, { 'Content-Type': contentType });
+ response.end(content, 'utf-8');
+ });
+ }
+ else {
+ response.writeHead(500);
+ response.end('Sorry, check with the site admin for error: '+error.code+' ..\n');
+ response.end();
+ }
+ }
+ else {
+ response.writeHead(200, { 'Content-Type': contentType });
+ response.end(content, 'utf-8');
+ }
+ });
+
+}).listen(8125);
+console.log('Server running at http://127.0.0.1:8125/');</pre>
+
+<p> </p>
+
+<h2 id="A_efetuar">A efetuar</h2>
+
+<p>Estenda este artigo, explicando como é que o código acima funciona. Talvez, uma versão estendida que sirva os ficheiros estáticos e lide com pedidos dinâmicos.</p>