nodejs和javascript差异
- js中的顶层对象:window
- node中顶层对象:global
nodejs中的模块
一个文件就是一个模块,每个模块都有自己的作用域。我们使用var来声明的变量并不是全局的,而是属于当前模块下。
|
|
__filename:
当前文件被解析过后的绝对路径。eg: e:/web/index.js
该属性并非全局属性,属于模块作用域
__dirname
当前文件所在目录被解析过后的绝对路径。eg: e:/web
该属性并非全局属性,属于模块作用域
路径
绝对路径
相对路径:不加.的话是加载核心模块;./相同目录下的
首先按照加载的模块的文件名称查找,如果没找到会在模块名称后加上.js的后缀进行查找
require(“./3”)–>是否有3–>是否有3.js–>3.json–>3.node
process
是一个全局对象:process==global.process
, 对当前运行的程序的进程进行访问和控制
返回的是module.exports
node.js:单线程 异步 驱动
php运行:本身不支持多线程,服务器Apache支持:初始化150个线程给php ,一万人访问,去线程池拿线程,用完放回,别人再拿
nodejs运行:单线程,那一万人访问怎么办?采用异步的方式
第一个人操作DB,就在内存中开辟一块空间,主线程到第二个人,上传
async
框架:express,koa,hapi
assert模块提供了一系列的断言测试
assert.equal(actual, expected[, message])
判断实际值 actual
和期望值 expected
是否相等。