JavaScript (ECMAScript) engine for building server side apps
http://nodejs.org/
Uses V8
Event/Callback driven - A callback function is registered for a specific event. When that event occurs the callback method is run.
In order to run node servers that are accessible to others via the internet, we'll need somewhere to host it. At the moment, the easiest way to run a Node.js server is to use a company such as Digital Ocean which provides Virtual Private Servers. Digital Ocean has a few things going for them, first is the cost, second is the fact that you can get one running with Node.js already installed very quickly.
In order to get started, you'll need to create an account with Digital Ocean.
After that, you can go ahead and create a "droplet". A "droplet" is Digital Ocean's term for a VPS. After coming up with a hostname, I would choose the smallest size, an appropriate region (one close to you, perhaps), and then in "Select image" go to the second tab, "One-click apps" and choose "Node x.x.x on x.x" (the version numbers change), choose the $5/mo size, and click "Create" at the bottom.
Digital Ocean will email you a password to use with the default "root" account. In order to do anything, you first have to login to the newly created server via the command line to change your password. To do so, open up Terminal on your Mac (or use PuTTY if you are on a PC). To connect on from the Terminal app on the Mac, you type the following:
ssh root@ip_address(The "ip_address" is in the email you get from Digital Ocean.) You will be prompted to enter the password (which is also from the email) and then prompted to enter it again to change it. Go ahead and change it to something you will remember but sufficiently complex that it will be difficult for hackers.
If you don't have Node preinstalled (you should if you choose it as a "one-click app") on your server, you'll need to go through the following steps:
apt-get update apt-get install nodejs apt-get install nodejs-legacy apt-get install npm
Once you have done that, we can move on although it is probably a good idea to keep the terminal open as we'll be using it again shortly.
In order to upload to your server, we need to use a tool that will allow us to connect via SSH to transfer the files. I have found that Fetch and Cyberduck are good tools.
To connect, choose "SFTP", under "Hostname" or "Server" use the IP address emailed to you by Digital Ocean. The "username" is "root" and the "password" is what you just created in Terminal.
// HTTP Portion var http = require('http'); var fs = require('fs'); // Using the filesystem module var httpServer = http.createServer(requestHandler); var url = require('url'); httpServer.listen(8080); function requestHandler(req, res) { var parsedUrl = url.parse(req.url); console.log("The Request is: " + parsedUrl.pathname); fs.readFile(__dirname + parsedUrl.pathname, // Callback function for reading function (err, data) { // if there is an error if (err) { res.writeHead(500); return res.end('Error loading ' + parsedUrl.pathname); } // Otherwise, send the data, the contents of the file res.writeHead(200); res.end(data); } ); /* res.writeHead(200); res.end("Life is wonderful"); */ }
To run, upload these files to a new folder on your your server (using Fetch or Cyberduck)
Then you can run the server via node.
ssh root@YOUR_IP cd directory_you_just_created npm install socket.io node server.jsAssuming you don't get any errors, you should be able to connect via your browser: http://YOUR_IP:8080/index.html
You may also want to read though this: Keep Node.js script running after logging out from shell
HTML stands for HyperText Markup Language. While not a traditional programming language, it is the language that is used to create web pages. Typically a markup language is used to define the structure and display of content, HTML is no different.
To write HTML, one of the first things you will need is a plain text editor. Most operating systems come with this capability built-in (TextEdit on the Mac and Notepad on Windows). While these applications work fine, there are some benefits to using a programmer's text editor such as TextWrangler on the Mac or TextPad on Windows.
In particular, they have line numbering, syntax coloring and other features that will make it easier to work with.
HTML is a tag based language. This means that you define the structure of the content of a document using tags.
An example of a tag would be: <b>some text</b> which when rendered in a browser looks like this: some text.
Here are some tags that we'll start with:
Here is the source of an HTML example page:
<html> <!-- Start the HTML --> <head> <!-- Start the Head --> <title>This is a Web Page</title> <!-- The Title of the page, start and end tag with text in-between --> </head> <!-- End the Head, always with a "/" --> <body> <!-- Start the body --> This is where you would put the content of the page. <!-- This is a comment and won't display --> This will be on the same line as the above. To specify a line break, you use: <br /> <br /> <!-- The above text displays both a <br /> and has this funny code: <br /> That funny code allows us to display the special characters that are typically used to define a tag so that we can display them without the browser actually thinking they are the start and end of a tag. This symbol: < is written as < meaning "less than". This symbol: > is written as > --> This text will be a line down <br /><br /> <!-- Two line breaks --> <!-- Line break tags include the closing "/" as part of them, there isn't a </br> tag. --> <blink>This Text Probably Doesn't Blink</blink> </body> <!-- End the body --> </html> <!-- End the HTML -->See the page rendered in a browser
<img src="URLTOIMAGE" /> <img src="animage.jpg" /> or <img src="http://itp.nyu.edu/~sve204/animage.jpg" />
<div style="background: #00ff00; text-color: #ff0000;">This will be funky</div>