zoukankan      html  css  js  c++  java
  • 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开发指南

  • 相关阅读:
    Node.js+express 4.x 入门笔记
    排序系列 之 堆排序算法 —— Java实现
    排序系列 之 归并排序算法 —— Java实现
    javascript必须知道的知识要点(二)
    XGBoost安装
    ubuntu16.04查看哪些软件可更新
    禁止ubuntu更新内核
    ubuntu安装nvidia显卡驱动问题
    禁用ubuntu16.04的guest账户
    远程登录jupyter notebook
  • 原文地址:https://www.cnblogs.com/socialdk/p/3078173.html
Copyright © 2011-2022 走看看