Node和模块介绍

 

什么是NodeJS

  Node: javascript runtime  运行解析器

  js解析器:  浏览器-bom/dom api

       node-v8 - fs, http ... api

设计

 NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。 

安装,运行

  nodejs.org

权限问题  

  在Linux系统下,使用NodeJS监听80或443端口提供HTTP(S)服务时需要root权限,有两种方式可以做到。

  一种方式是使用sudo命令运行NodeJS。例如通过以下命令运行的server.js中有权限使用80和443端口。一般推荐这种方式,可以 

  保证仅为有需要的JS脚本提供root权限。

  $ sudo node server.js

  另一种方式是使用chmod +s命令让NodeJS总是以root权限运行,具体做法如下。因为这种方式让任何JS脚本都有了root权限,不太安全,

  因此在需要很考虑安全的系统下不推荐使用。

  $ sudo chown root /usr/local/bin/node
  $ sudo chmod +s /usr/local/bin/node

 

 

模块

  编写稍大一点的程序时一般都会将代码模块化

  在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名

  在编写每个模块时,都有 requireexportsmodule 三个预先定义好的变量可供使用

  >>>>>> exports 和 module.exports 的区别和联系

  

模块初始化  (用过的模块会被缓存)

  一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象。之后,缓存起来的导出对象被重复利用

  

主模块

  通过命令行参数传递给NodeJS以 启动程序的模块被称为主模块。 (程序入口)

  主模块负责调度组成整个程序的其它模块完成工作。例如通过以下命令启动程序时,main.js就是主模块。

  $ node main.js

二进制模块

  NodeJS也支持使用C/C++编写二进制模块

 

 

 

posted @ 2018-12-09 13:49  aocn  阅读(126)  评论(0)    收藏  举报