读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
原文地址:https://www.cnblogs.com/mesopotamiazZ/p/7062406.html