Node HTTP server
// Require what we need
var http = require("http");
// Build the server
var app = http.createServer(function(request, response) {
response.writeHead(200, {
"Content-Type": "text/plain"
});
response.end("Hello world!\n");
});
// Start that server, baby
app.listen(1337, "localhost");
console.log("Server running at http://localhost:1337/");
В браузере набрать
localhost:1337
localhost:1337/anime_currency
localhost:1337/?onlyfriend=anime
------------------------------------------------------------------------------
The request handler
var app = http.createServer(function(request, response) {
// Build the answer
var answer = "";
answer += "Request URL: " + request.url + "\n";
answer += "Request type: " + request.method + "\n";
answer += "Request headers: " + JSON.stringify(request.headers) + "\n";
// Send answer
response.writeHead(200, { "Content-Type": "text/plain" });
response.end(answer);
});
------------------------------------------------------------------------------
Add 404 Error page
var http = require("http");
http.createServer(function(req, res) {
// Homepage
if (req.url == "/") {
res.writeHead(200, { "Content-Type": "text/html" });
res.end("Welcome to the homepage!");
}
// About page
else if (req.url == "/about") {
res.writeHead(200, { "Content-Type": "text/html" });
res.end("Welcome to the about page!");
}
// 404'd!
else {
res.writeHead(404, { "Content-Type": "text/plain" });
res.end("404 error! File not found.");
}
}).listen(1337, "localhost");
------------------------------------------------------------------------------
Connect
// Require the stuff we need
var connect = require("connect");
var http = require("http");
// Build the app
var app = connect();
// Add some middleware
app.use(function(request, response) {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello world!\n");
});
// Start it up!
http.createServer(app).listen(1337);
------------------------------------------------------------------------------
Connect with Middleware
var connect = require("connect");
var http = require("http");
var app = connect();
// Logging middleware
app.use(function(request, response, next) {
console.log("In comes a " + request.method + " to " + request.url);
next();
});
// Send "hello world"
app.use(function(request, response) {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello world!\n");
});
http.createServer(app).listen(1337);
------------------------------------------------------------------------------
Connect with Logger
var connect = require("connect");
var http = require("http");
var app = connect();
app.use(connect.logger());
// Fun fact: connect.logger() returns a function.
app.use(function(request, response) {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello world!\n");
});
http.createServer(app).listen(1337);
Перейти в браузере на localhost:1337
------------------------------------------------------------------------------
Many pages with Connect
var connect = require("connect");
var http = require("http");
var app = connect();
app.use(connect.logger());
// Homepage
app.use(function(request, response, next) {
if (request.url == "/") {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Welcome to the homepage!\n");
// The middleware stops here.
} else {
next();
}
});
// About page
app.use(function(request, response, next) {
if (request.url == "/about") {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Welcome to the about page!\n");
// The middleware stops here.
} else {
next();
}
});
// 404'd!
app.use(function(request, response) {
response.writeHead(404, { "Content-Type": "text/plain" });
response.end("404 error!\n");
});
http.createServer(app).listen(1337);
------------------------------------------------------------------------------
Express
var express = require("express");
var http = require("http");
var app = express();
http.createServer(app).listen(1337);
------------------------------------------------------------------------------
Express Routing
var express = require("express");
var http = require("http");
var app = express();
app.all("*", function(request, response, next) {
response.writeHead(200, { "Content-Type": "text/plain" });
next();
});
app.get("/", function(request, response) {
response.end("Welcome to the homepage!");
});
app.get("/about", function(request, response) {
response.end("Welcome to the about page!");
});
app.get("/hello/:who", function(req, res) {
res.end("Hello, " + req.params.who + ".");
// Fun fact: this has security issues
});
app.get("*", function(request, response) {
response.end("404!");
});
http.createServer(app).listen(1337);
Перейти в браузере на localhost:1337/hello/animelover69
------------------------------------------------------------------------------
Express Redirect
response.redirect("/hello/anime");
response.redirect("http://www.myanimelist.net");
response.redirect(301, "http://www.anime.org"); // HTTP status code 301
response.sendFile("/path/to/anime.mp4");
------------------------------------------------------------------------------
Express View
// Start Express
var express = require("express");
var app = express();
// Set the view directory to /views
app.set("views", __dirname + "/views");
// Let's use the Jade templating language
app.set("view engine", "jade");
app.get("/", function(request, response) {
response.render("index", { message: "I love anime" });
});
------------------------------------------------------------------------------
Connect and Node inside Express
var express = require("express");
var app = express();
app.use(express.logger()); // Inherited from Connect
app.get("/", function(req, res) {
res.send("anime");
});
app.listen(1337);
------------------------------------------------------------------------------
Read more on evanhahn.com/understanding-express-js/