初探node.js

一、定义及优势

定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型。

优势:由于Web场景下的大多数任务(静态资源读取、数据库操作、渲染页面)都是I/O密集的,所以使用非阻塞模型就可以大大地提高CPU的利用率。

使用场景:Web Server、本地代码构建(用于编译构建前端代码)、实用工具开发。

二、成员

  1. CommonJs:模块规范
  2. global:全局对象
  3. process:当前执行的进程

三、CommonJS规则

  • 每个文件是一个模块,有自己的作用域。
  • 在模块内部module变量代表模块本身
  • module.exports属性代表模块对外的接口

实例1:编写2个模块用于实践下上述的三条规则。

新建文件01_testA.js,内容如下:

const testVar = 100;

function test() {
    console.log(testVar);
}

// 将变量暴露给其他模块
module.exports.var = testVar;
module.exports.fn = test;

console.log('testA executed');

再新建一个模块,创建文件01_testB.js:

// 支持js、json、node扩展名,不写依次尝试匹配。
// 若不写路径则认为是build-in模块或者各级node_modules内的第三方模块
// require特性:1、module被加载 的时候执行,加载后缓存 2、一旦出现某个模块被 循环加载,就只输出已经执行的部分,未执行的部分不会输出
const mod = require('./01_testA');
console.log(mod.var);
mod.fn();

在命令行运行01_testB.js文件,查看模块之间的调用结果,命令行输入node 01_testB.js,结果如下:

testA executed
100
100

原文地址:https://www.cnblogs.com/yunche/p/11069891.html

时间: 2024-10-31 09:15:30

初探node.js的相关文章

初探node.js -- 环境配置及安装

1.node安装包的下载 http://www.nodejs.org/download/ 这个是官网地址~ 如果你也是Windows系统的话安装Windows Installer (.msi)即可. 2.安装nodeJs 双击安装包一直下一步即可,nodejs还是比较人性化的.他会自动帮你把环境变量配好~ 在安装node的安装包时我在这里报了个错,error 2502,error2503错误原因是你的权限不够(话说win8安装.msi文件时经常这样..). 解决方法是用管理员权限运行此文件即可.

Node.js 学习资源

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学习指南和教程 NodeSchool.io 交互式课程 Node的艺术 (Node简介) Hello World Hello World Web Server Node.js 指南 使用Node.js, express和MongoDB创建一个博客 Node+MongoDB 100分钟建站攻略 Proj

Node.js的学习资源、教程和工具

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学习指南和教程 NodeSchool.io 交互式课程 Node的艺术 (Node简介) Hello World Hello World Web Server Node.js 指南 使用Node.js, express和MongoDB创建一个博客 Node+MongoDB 100分钟建站攻略 Proj

Node.js 爬虫初探

前言 在学习慕课网视频和Cnode新手入门接触到爬虫,说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要是把慕课网教学视频提供的案例自己敲了一边,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 知识点 ①:superagent抓去网页工具.我暂时

node.js http初探

在之前的例子中已经写了一个简单的使用http模块的例子 var http = require('http');  //请求http模块 var func = function(req,res) { res.writeHead(200,{'Content-Type' : 'text/plain'});//相应头200 表示正常返回 res.write("node.js") res.end(); }//web服务器收到请求时的处理函数 var server = http.createSer

node.js基础模块http、网页分析工具cherrio实现爬虫

node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点    ①:supera

node.js高级编程|node.js 视频教程_基于node.js+Express.js+Jade+MongoDB实战开发

基于node.js+Express.js+Jade+MongoDB开发Web即时聊天系统课程讲师:幻星课程分类:前端开发适合人群:初级课时数量:36课时更新程度:完成用到技术:Node.js NPM. Express.NoSQL,MongoDB涉及项目:匿名聊天网站系统node.js视频教程:http://www.ibeifeng.com/goods-462.htmlnode.js 教程适合人群:node.js视频教程要求学员了解JavaScript,node.js入门教程适合希望更深入的学习N

准备要看的node.js相关资料

node.js电子书 了不起的Node.js 深入浅出Node.js node.js入门经典 node.js开发指南 node.js相关优秀博文 官网 Infoq深入浅出Node.js系列(进阶必读) Node.js中文文档 被误解的 Node.js Node.js C++ addon编写实战系列 热门node.js模块排行榜,方便找出你想要的模块 nodejs多线程,真正的非阻塞 浅析nodejs的buffer类 利用libuv编写异步多线程的addon实例 Node.js中exports与m

基于node.js+Express.js+Jade+MongoDB开发Web即时聊天系统

本课程要求学员了解JavaScript,本课程适合希望更深入的学习Node.js,从事Web前端方向开发的大学生朋友,或者希望借助Node.js更优的性能与后台结合生产出更有价值的网站的在职程序员 咨询QQ:2199289905 课程目录 第一部分.理论讲解部分: 1.初识node.js 2.node.js特性 3.node.js核心库(console.Timers.util.Event) 4.node.js核心库(Buffer.Stream.FileSystem) 5.node.js核心库(F