• 读nodejs开发指南


    我说下比较值得记录下的地方。

    一、简介

    nodejs是异步I/O与事件驱型的语言,语法与JavaScript完全一致,不同在于JavaScript运行在浏览器中,由浏览器进行解析执行,而nodejs一门后端语言,一般是由V8引擎进行解析执行。相较于JAVA等他是单线程的,适合用于I/O密集型软件的开发,不适用于CPU密集型的软件开发。

    先来看一下nodejs的异步操作:

    var fs = require("fs");
    
    fs.readFile('file.txt','utf-8',function(err,data){
      if(err){
        console.log(err);
        return;
      }
      console.log(data);
    });
    
    console.log('文件读取');

    这个是一个关于nodejs对文件的异步读取,readFile方法提供的最后一个参数是一个回调函数callback,回调函数是在readFile执行完毕后才进行执行,这段代码我们先看到打印“文件读取”几个字,才会打印从文件中读取的内容。这个代码在单线程中执行时不会因为回调函数没执行完而被阻塞。

    二、nodejs的事件发射器

    先看代码:

    var events = require("events");
    var emitter = new  events.EventEmitter();
    
    emitter.on('someEvent',function(){
      console.log("someEvent事件触发");
    });
    
    emitter.emit('someEvent');

    events 是 Node.js 最重要的模块,没有“之一”,原因是 Node.js 本身架构就是事件式 的,而它提供了唯一的接口,所以堪称 Node.js 事件编程的基石。

    三、模块和包

    模块(Module)和包(Package)是 Node.js 最重要的支柱。开发一个具有一定规模的程 序不可能只用一个文件,通常需要把各个功能拆分、封装,然后组合起来,模块正是为了实 现这种方式而诞生的。在浏览器 JavaScript 中,脚本模块的拆分和组合通常使用 HTML 的 script 标签来实现。Node.js 提供了 require 函数来调用其他模块,而且模块都是基于 文件的,机制十分简单。

    什么是模块:模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、JSON 或者编译过的 C/C++ 扩展。

    什么是包:包是在模块基础上更深一步的抽象,Node.js 的包类似于 C/C++ 的函数库或者 Java/.Net 的类库。它将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。

    包通常是一些模块的集 合,在模块的基础上提供了更高层的抽象,相当于提供了一些固定接口的函数库。通过定制 package.json,我们可以创建更复杂、更完善、更符合规范的包用于发布。

    四、nodejs核心模块

    全局对象:JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量。在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。

    五、Express框架+ejs模板进行WEB开发

    1、安装express框架

    $ npm install express -g

    2、建立工程

    express -e ejs "工程名"
    //会在当前目录产生一些文件
    create : microblog
     create : microblog/package.json
     create : microblog/app.js
     create : microblog/public
     create : microblog/public/javascripts
     create : microblog/public/images
     create : microblog/public/stylesheets
     create : microblog/public/stylesheets/style.css
     create : microblog/routes
     create : microblog/routes/index.js
     create : microblog/views
     create : microblog/views/layout.ejs
     create : microblog/views/index.ejs 
    
    //在根目录加上package.json的文件
    {
     "name": "microblog"
     , "version": "0.0.1"
     , "private": true
     , "dependencies": {
     "express": "2.5.8"
     , "ejs": ">= 0.0.1"
     }
    } 
    
    //运行 npm install会根据package.json配置,自动安装相关依赖
    npm install
  • 相关阅读:
    BF算法(串模式匹配算法)
    python字符串 常用函数 格式化字符串 字符串替换 制表符 换行符 删除空白 国际货币格式
    python 列表
    python 循环语句
    http://www.pythontutor.com/visualize.html#mode=edit python在线检测代码
    GDI+_绘制QQ头像
    socket编程之select()
    socket编程之select()
    设置itemcontrol的item点击前后不同状态
    设置itemcontrol的item点击前后不同状态
  • 原文地址:https://www.cnblogs.com/mesopotamiazZ/p/7062406.html
Copyright © 2020-2023  润新知