node.js

简单的说 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我不太熟。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,101评论 2 58
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宫若石阅读 1,126评论 0 1
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,500评论 1 37
  • # 模块机制 node采用模块化结构,按照CommonJS规范定义和使用模块,模块与文件是一一对应关系,即加载一个...
    RichRand阅读 2,551评论 0 3
  • 连papi酱都转知识付费社区了!这些年,你为知识买过单吗?为此交过多少智商税?今天,我先来自爆一段黑历史吧。 付费...
    何莉甘阅读 702评论 0 0