NodeJS 模块&函数

nodejs的多文件操作通过模块系统实现,模块和文件一一对应。文件本身可以是javascript代码、JSON或编译过的C/C++扩展

基本用法

nodeJS通过exports和require两个对象实现模块通信。exports是模块对外的公开接口,require从外部获得其他模块exports的对象

举例:

$ tree
.
├── hello.js
└── main.js

hello.js

exports.world = function () {
console.log('Hello World')
}

main.js

var hello  = require('./hello')
hello.world()

把对象封装到模块中

hello.js

function Hello() {
var name
this.setName = function (s) {
name = s
}
this.sayHello = function () {
console.log("Hello, I'm "+name)
}
} //使用module关键字申明模块接口
module.exports = Hello

main.js

var Hello  = require('./hello')
var hello = new Hello()
hello.setName("Jack")
hello.sayHello()

函数部分

函数部分本来应该是JavaScript语法部分,这里也总结一下

匿名函数

function execute(someFunc, value) {
someFunc(value)
} execute(function (world) {
console.log(world)
}, "Hello world")

map-reduce

var materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
]; // array的map函数可以用一个函数映射
console.log(materials.map(function(material) {
return material.length;
})) // array的reduce函数默认使用左结合
console.log(materials.reduce(function (x,y){
return x +"->"+ y
}))
/*输出*/
[ 8, 6, 7, 9 ]
Hydrogen->Helium->Lithium->Beryllium

常用全局量

nodeJS的全局宿主是global,地位和浏览器中的window相当

常用量

  • __filename:当前运行文件的绝对路径
  • __dirname:当前运行的绝对目录
  • global的process属性提供了非常丰富的属性:
    • argv:脚本参数列表
    • execPath:返回执行当前脚本的 Node 二进制文件的绝对路径
    • execArgv:返回一个数组,成员是命令行下执行脚本时,在Node可执行文件与脚本文件之间的命令行参数
    • env:返回环境变量
    • pid:进程号
    • chdir(directory):更换工作目录
    • cwd():当前目录
    • exit(code):退出,默认code为0
    • uptime:返回node已经运行的秒数

NodeJS 模块&函数的更多相关文章

  1. # nodejs模块学习: express 解析

    # nodejs模块学习: express 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子 ...

  2. NodeJS 模块开发及发布详解

    NodeJS 是一门年轻的语言,扩展模块并不太全,经常我们想用某个模块但是却找不到合适的.比如前两天我需要使用hmac和sha1来做签名,就没有找到一个比较好用的模块,这时候就需要我们自己来实现相应的 ...

  3. NodeJS模块、包、NPM

    1.NodeJS模块        每一个Nodejs都是一个NodeJS模块,包括JS文件,JSON文本文件,二进制模块文件. a.模块的应用               新建一个文件mytest. ...

  4. nodejs模块xml2js解析xml的坑

    在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下: <xml> <MsgId>6197906553041859764</MsgId> &l ...

  5. python内置函数 和模块函数总结

    1.内置函数(无需导入)long() 函数将数字或字符串转换为一个长整型.len() 统计元素个数print() 打印,输出input() 输入,或阻塞程序运行type 获取类型range 产生连续的 ...

  6. nodejs 之=> 函数

    基本用法: ES6中允许使用“箭头”(=>)定义函数 var f = v => v; 上面代码相当于定义了一个函数 f : var f = function(v){ return v; } ...

  7. es6模块 nodejs模块和 typescript模块

    es6模块 import和export nodejs模块 require和module.exports typescript模块 module和export

  8. nginx unit nodejs 模块试用

      unit 对于nodejs 的支持是在10.25 发布的,基本能用,但是依然有好多问题,当前在测试的时候就发现,请求之后会block , 相关的issue 已经有人反馈了,最好使用源码编译,方便测 ...

  9. Python常用的一些内建函数和math模块函数

    一:Python内建函数 # abs取绝对值 num = -10 print(abs(num)) # max 求最大值 print(max(6, 9, 2, 12, 8)) # min求最小值 pri ...

随机推荐

  1. EF批量插入数据(Z.EntityFramework.Extensions)

    EF用原生的插入数据方法DbSet.ADD()和 DbSet.AddRange()都很慢.所以要做大型的批量插入只能另选它法. 1.Nugget 2.代码 using EF6._0Test.EF; u ...

  2. makefile:n: *** missing separator. Stop

    makefile has a very stupid relation with tabs, all actions of every rule are identified by tabs .... ...

  3. spark批量写写数据到Hbase中(bulkload方式)

    1:为什么大批量数据集写入Hbase中,需要使用bulkload BulkLoad不会写WAL,也不会产生flush以及split. 如果我们大量调用PUT接口插入数据,可能会导致大量的GC操作.除了 ...

  4. 如何查找物理cpu,cpu核心和逻辑cpu的数量

    环境 Red Hat Enterprise Linux 4 Red Hat Enterprise Linux 5 Red Hat Enterprise Linux 6 Red Hat Enterpri ...

  5. eclipse启动web应用 报错

    错误:The origin server did not find a current representation for the target resource or is not willing ...

  6. jenkins(3): jenkins执行shell命令

    参考: https://www.cnblogs.com/reblue520/p/7146693.html 1. 执行 本地 shell命令或者脚本 是在一个构建中的  bulid 选项卡. 执行本地中 ...

  7. spring cloud (二、服务注册安全demo_eureka)

    spring cloud (一.服务注册demo_eureka) 加强服务的安全性,我们接下来加上访问的账号密码: 首先需要添加对应的依赖 <!--账号密码认证依赖--> <depe ...

  8. 009 pandas的Series

    一:创建 1.通过Numpy数组创建 2.属性查看 3.一维数组创建(与numpy的创建一样) 4.通过字典创建 二:应用Numpy数组运算 1.获取值 numpy的数组运算,在Series中都被保留 ...

  9. Trident中使用HBase进行状态管理

    1.使用的类 2.使用HBaseMapState 3.使用状态管理 使用的状态管理还要看Spout StateFactory factory1 = HBaseMapState.opaque(opts1 ...

  10. Oracle中start with...connect by子句的用法

    http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html