zoukankan      html  css  js  c++  java
  • 读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
  • 相关阅读:
    mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构
    mysqldump 备份某张表 Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions,
    nfs missing codepage or helper program, or other error
    date 增加一个小时 减少一个小时
    mysqldump 备份单个数据库
    mysql删除账户
    怎么删除某个用户的所有帖子?
    mongodb删除重复数据
    ReSharper2018破解详细方法
    激活windows和office
  • 原文地址:https://www.cnblogs.com/mesopotamiazZ/p/7062406.html
Copyright © 2011-2022 走看看