简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。它对一些特殊用例进行了优化,提供了替代的API 使得V8引擎在非浏览器环境下运行的更好。
node.js使用事件驱动、非阻塞io模型,而得以轻量和高效。
node的模块
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是对应的。一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 等。
创建一个模块,例:
var hello=require('./hello');
hello.world();
上面代码中, require('./hello') 引入了当前目录下的hello.js文件。
Node.js 提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。
接着创建hello.js:
exports.world=function(){
console.log('Hello World')
;}
上面代码中,hello.js 通过 exports 对象把 world 作为模块的访问接口,在 main.js 中通过 require('./hello') 加载这个模块,然后就可以直接访 问 hello.js 中 exports 对象的成员函数了。
封装模块:
module.exports=function(){ ...}
Node内建有一个模块,利用它可以很容易创建基本的HTTP服务器
栗子:
var http = require('http');
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type':'text/plain'});
res.end('Hello World\n');
}).listen(8080);
console.log('Server running on port 8080.');
Node.js中自带了一个叫做"http"的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。
这把我们的本地变量变成了一个拥有所有 http 模块所提供的公共方法的对象。
node.js通过内置的文件模块,我们可以很容易进行文件的输入/输出操作。fs模块有一个reFile方法,该方法以文件路径、回调函数为参数。该回调函数在完成文件读取后调用。文件数据读取后存储在。我们可以通过tostring()方法将它转化为字符串。
异步回调
Node.js典型的模式是使用异步回调。你让Node.js做事,它执行完后便会调用你的回调函数。这是因为Node是单线程的。在你等待回调函数执行过程中,Node可继续执行其他事务,不必被阻塞直到该请求完毕。
这对于Web服务器尤其重要。在现代Web应用访问数据库的过程中特别普遍。当你等待数据库返回结果的过程中,Node可以处理更多请求。与每次连接仅处理一个线程相比,它使你以很小的开销来处理成千上万个并行连接。
模块的路径解析规则
1.核心模块:不需要写路径,直接加载;
2.普通模块:如果不写路径,规则:
//////1. 通过node_modules 现在本目录找,如果没有依次找上级
//////2.通过配置环境变量 node_path 如果没有直接到该目录找
先写到这里吧。。。node.js我不太熟。。
网友评论