nodejs的安装及入门

---恢复内容开始---

nodejs的安装请参考官网:https://github.com/joyent/node/wiki/Installation

第一 小试牛刀

在服务器的根目录创建server.js

1 //请求(require)Node.js自带的http模块 并且将其赋值给http
2 var http = require("http");
3 //调用http的createServer函数,这个函数返回一个对象。这个对象有一个listen方法 此方法接收一个数值参数 用来指定服务器端口号
4 //看到里面的function没有 这个可是高级货啊  在js里面可以进行函数的传递 并且这里使用的是匿名函数。
5 http.createServer(function(reueset , response){
6     response.writeHead(200, {"Content-Type" : "text/plain"});
7     response.write("hello world");
8     response.end();
9 }).listen(8888);

运行node server.js

然后在浏览器里面访问localhost:8888 你会在页面上看到   hello world

第二:nodejs是基于事件驱动的

多问下自己nodejs为什么是基于事件回调的?

建议先看下:

Understanding node.js

当我们使用 http.createServer 方法的时候,我们当然不只是想要一个 侦听某个端口的服务器,我们还想要它在服务器收到一个 HTTP 请求的 时候做点什么。

问题是,这是异步的:请求任何时候都可能到达,但是我们的服务器却 跑在一个单进程中。

写 PHP 应用的时候,我们一点也不为此担心:任何时候当有请求进入 的时候,网页服务器(通常是 Apache)就为这一请求新建一个进程, 并且开始从头到尾执行相应的 PHP 脚本。

那么在我们的 Node.js 程序中,当一个新的请求到达 8888 端口的时候, 我们怎么控制流程呢?

嗯,这就是 Node.js/JavaScript 的事件驱动设计能够真正帮上忙的地方 了——虽然我们还得学一些新概念才能掌握它。让我们来看看这些概念 是怎么应用在我们的服务器代码里的 

我们创建了服务器,并且向创建它的方法传递了一个函数。无论何时我 们的服务器收到一个请求,这个函数就会被调用。

我们不知道这件事情什么时候会发生,但是我们现在有了一个处理请求 的地方:它就是我们传递过去的那个函数。至于它是被预先定义的函数 还是匿名函数,就无关紧要了。

这个就是传说中的 回调 。我们给某个方法传递了一个函数,这个方法 在有相应事件发生时调用这个函数来进行 回调 。 

第三:服务器是如何处理请求的 

当回调启动,我们的 onRequest() 函数被触发的时候,有两个参数被传 入:request 和 response 。

它们是对象,你可以使用它们的方法来处理 HTTP 请求的细节,并且响 应请求(比如向发出请求的浏览器发回一些东西)。

所以我们的代码就是:当收到请求时,使用 response.writeHead() 函 数发送一个 HTTP 状态 200 和 HTTP 头的内容类型(content-type), 使用 response.write() 函数在 HTTP 相应主体中发送文本“Hello World"。

最后,我们调用 response.end() 完成响应 

第四 模块化

如何模块化?

看下代码 server.js

 1 var http = require("http");
 2 function start() {
 3    function onRequest(request, response) {
 4       console.log("Request received.");
 5       response.writeHead(200, {"Content-Type": "text/plain"});
 6       response.write("Hello World");
 7       response.end();
 8 }
 9    http.createServer(onRequest).listen(8888);
10    console.log("Server has started.");
11 }
12 //关键的地方 导出什么呢?
13 exports.start = start;

在看看在index.js

  1 var server = require("./server");2 server.start(); 

 请求这个文件(server.js)并将其赋值给server变量,然后导出的函数就可以被使用了。

这样之后,我们只需要执行 node index.js就启动服务了

原文地址:https://www.cnblogs.com/greenboy/p/4537517.html