Node.js学习笔记01

简介: Node.js学习

什么是nodeJs?

对于web前端开发人员来说,初期的js文件是在html文件中通过浏览器解析器来解析的,而node.js的出现,使得js文件也能被单独的解析。
  • 前端开发人员一提到js更多想到的是基于浏览器的dom操作,而运行在Node.js中的js作用多数是操作磁盘文件或搭建http服务,Node.js提供了相应的fs,http等内置对象。
  • Node.js让前端如获神器,跳出了浏览器的窗口。

安装Node.js

  • NodeJS提供了一些安装程序,都可以在nodejs.org这里下载并安装。
  • Windows系统下,选择和系统版本匹配的.msi后缀的安装文件。Mac OS X系统下,选择.pkg后缀的安装文件。

运行

  • 终端直接输入代码运行

$ node


> console.log("hello Kcoder");


hello Kcoder

  • 创建js文件,终端运行js文件
  • 创建sayHello.js

(function(){


console.log("hello Kcoder");


})();

  • 终端输入

$ nodesayHello.js


hello Kcoder

模块

复杂程序尽量模块化会使得逻辑结构更加清晰容易理解,在Node.js中require,exports,module这些预定义好的可以供使用。
  • require用来传入别的有导出模块的文件,这里的路径可以是相对路径,也可以是绝对路径,如果是.js文件,.js可y以省略。

var liuwen = require("./liuwen.js");


var liuwen = require("./liuwen");


var liuwen = require("c:/web/liuwen.js");

  • exports是用来导出模块的公有属性和方法,

exports.liuwen=function(){


   alert("liuwen");


}

  • module是替换当前模块的导出对象。例如模块导出对象默认是一个普通对象,如果想改成一个函数的话,可以使用以下方式。

module.exports = function () {


   console.log('liuwen');

   

};

模块初始化

所有模块在执行过程中只初始化一次。
  • 首先由如下结构目录

- part.js


- main.js

  • part.js内容

   var i = 0;

   

   functionsayNum (){


   returni += 1;

   

}

  • main.js内容

   var part1 = require(./part.js);

   

   var part2 = require(./part.js);

   

   console.log(part1.sayNum());

   

   console.log(part2.sayNum());

   

   console.log(part2.sayNum());

  • 终端运行

   $ nodemain.js

   

   1

   

   2

   

   3

由此可见并没有被初始化两次。

小结

  • Node.js是一个js脚本解析器,操作系统下安装Node.js的实质是Node.js的执行程序复制到系统目录下,以便在终端可以使用node命令。
  • 终端下直接输入node命令可进入命令交互模式,很适合用来测试一些JS代码片段,比如正则表达式。
  • NodeJS使用CMD模块系统,主模块作为程序入口点,所有模块在执行过程中只初始化一次。
  • 除非JS模块不能满足需求,否则不要轻易使用二进制模块,否则你的用户会叫苦连天。
相关文章
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
2月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
1月前
|
JavaScript 前端开发
【干货分享】JavaScript学习笔记分享
【干货分享】JavaScript学习笔记分享
52 0
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
38 0
|
6月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
64 0
webgl学习笔记3_javascript的HTML DOM
|
6月前
|
JavaScript 前端开发 Java
webgl学习笔记2_javascript基础快速学习
webgl学习笔记2_javascript基础快速学习
50 0
|
6月前
|
前端开发 JavaScript API
JavaScript学习笔记(一)promise与async
JavaScript学习笔记(一)promise与async
|
6月前
|
存储 JavaScript
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
48 0