JS学习专辑外传(1)

之前看了Js的一些基础的东西,正好看到了Node.js,所以入个门先,至于高端的东西等以后再学,毕竟基础还不够。

因为装过了Node,所以直接可以用了,没装的童鞋可以看这里。然后一个网页需要一个web页面吧,所以要HTTP的服务器吧,可以直接创建一个最简单的http服务器(貌似所有的初学者都看的是这个例子嘛= =):

var http = require('http');
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Node.js');
res.end('Hello World');
}).listen(3000);
View Code

上面例子中用到了var http = require('http'),其中http是 Node.js 的一个核心模块。我们通过require 函数获取了这个模块,然后才能使用其中的对象。然后用到了里面的createServer函数,返回一个对象,这个对象有listen的方法,方法里的参数就是http服务器的端口号。看一下函数里面的东西,当收到请求时,使用 res.writeHead() 函数发送一个HTTP状态200和HTTP头的内容类型(content-type),使用 res.write() 函数在HTTP相应主体中发送文本“Hello World"。 最后,我们调用 res.end() 完成响应。

Node.js最大的特点是异步式I/O与事件紧密结合的编程模式。具体的那些概念撒的就不说了~比较重要的是事件驱动的回调,首先来看下例子:

var fs=require("fs");

fs.readFile("app.js","utf-8",function(err,data){
    if(err){
        console.log(err);
    }
    else{
        console.log(data);    //app.js中是"abc"
    }
});
console.log("jk");

结果:
jk
abc
View Code

在上面的例子中fs.readFile中有三个参数,第一个是文件名,第二个是编码方式,第三个是一个函数,这个函数就是回调函数,fs.readFile 调用时所做的工作只是将异步式 I/O 请求发送给了操作系统,然后立即返回并执行后面的语句,执行完以后进入事件循环监听事件。当 fs 接收到 I/O 请求完成的事件时,事件循环会主动调用回调函数以完成后续工作。因此我们会先看到 end,再看到文件中的内容。

Node.js在开发过程中,不可能只有一个文件的,通常需要把各个功能通过拆分、封装、然后组合起来,模块(Module)和包(Package)就是这个的重要支柱。Node.js 提供了 require 函数来调用其他模块。举个例子:

//module.js
function Hello(){
    this.sayHello=function(){
        console.log("Hello World");
    }
}

module.exports=Hello;
View Code
//gethello.js
var hello=require("./module");

hello=new hello();
hello.sayHello();    //输出Hello World
View Code

如上面的例子创建了一个module.js的文件,在Module中通过module.exports可以导出,然后在另一个js中通过 require('./module') 加载这个模块,然后就可以直接访问 module.js 中 exports 对象的成员函数了。

想再深入了解的话可以看下面PDF学习继续深入的学习一下:

Node.js入门手册&&Node.js开发指南

原文地址:https://www.cnblogs.com/socialdk/p/3078173.html