node.js基础 1之基本概念常识
node.js 好牛逼的样子哦
很火,很腻害~~~~
有关node.js的版本常识:

一般用最新的稳定版本,非稳定版本用于测试,其中包括api的不稳定等。
起一个web服务器:
ndoejs可以自定义一个web服务器 服务器采用事件驱动模型 也就是用回调函数做异步加载 所以启动时遇到错误不会被阻塞 创建服务器
1.先引用一个http模块 创建服务器及处理http相关的任务
2.通过http里的createServer方法来创建服务后会返回一个对象
3.在通过服务器返回对象里的listen方法让服务器来设置它的端口监听请求
4.在createServer方法里创建一个回调函数 回调函数里有两个参数(1.请求 用来请求url之类的访问 2.响应 用来根据请求返回相对应的东西) 另外还会返回的一个请求头 返回的状态码是200,是文本类型的或者其他类型 表示请求成功 最后还会返回一个提示语

node.js和浏览器执行环境:
相同点:都能执行一般的Js代码
不同点:全局变量不同,例如window,document等只能在浏览器中取到,而process则只能在node环境中取到
nodejs 本质是一个js的执行环境 由于封装和底层的处理赋予了更大的能力
node.js模块和commonjs规范:
JS中容易出现变量被覆盖,方法被替代的情况(既被污染)。特别是存在依赖关系时,容易出现错误。这是因为JS缺少模块管理机制,来隔离实现各种不同功能的JS判断,避免它们相互污染。
为此我们经常采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行。jQuery中有许多变量和方法,但是无法直接访问,必须通过jQuery,
$调用 各个方法。
Commonjs不同于jQuery,Commonjs是一套规范,约定了js如何组织,如何编写。大部分标准在拟定和讨论之中,首先把执行不同任务的代码块和代码文件看为独立的模块,每一个模块都是一个单独的作用域,
但不是孤立的,可能存在依赖关系。每个模块分为三个部分,定义、标识和引用。这套规范与现实产品如node.js相互影响,良性循环。
nodejs基于commonjs实现了模块管理系统。node中每一个js文件都是一个独立的模块,在其内部不需要有命名空间,不需要担心变量的污染和方法定义时的隔离。
同时模块之间可以组合形成更强大的模块或功能包。npm即是用来管理各种功能包的。 模块的分类:
在nodejs中文件和模块是一一对应的
模块类型: 1核心模块 2本地模块 3通过npm安装的第三方模块
引用模块的方式 1用文件路径引用 2用模块名来引用
如果用名称引用非核心模块的话 node就会把模块名映射到对应模块名的路径 包含了核心函数的模块会在node启动时预先加载 非核心模块就是使用npm安装的第三方模块 或者其他人创建的模块
node.js基础 1之基本概念常识的更多相关文章
- 01慕课网《进击Node.js基础(一)》Node.js安装,创建例子
版本:偶数位为稳定版本,基数为非稳定版本 - 0.6.x - 0.7.x - 0.8.x -0.9.x -0.10.x -0.11.x 概念:Node.js采用谷歌浏览器的V8引擎,用C ...
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
- node.js基础模块http、网页分析工具cherrio实现爬虫
node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言 说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...
- Node.js基础知识
Node.js入门 Node.js Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...
- NodeJs>------->>第三章:Node.js基础知识
第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info 方法 console.log(" node app1.js 1> ...
- 10慕课网《进击Node.js基础(一)》初识promise
首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...
- 进击Node.js基础(二)
一.一个牛逼闪闪的知识点Promise npm install bluebird 二.Promise实例 ball.html <!doctype> <!DOCTYPE html> ...
- 07慕课网《进击Node.js基础(一)》HTTP小爬虫
获取HTML页面 var http = require('http') var url='http://www.imooc.com/learn/348' http.get(url,function(r ...
- 03慕课网《进击Node.js基础(一)》API-URL网址解析
url url.parse(url,query,host);解析域名 url必须,地址字符串 query可选 host 可选:在不清楚协议时正确解析 querystring 字符串和对象之间互相解析 ...
随机推荐
- spring boot servlet、filter、listener
http://blog.csdn.net/catoop/article/details/50501686
- LeetCode Walls and Gates
原题链接在这里:https://leetcode.com/problems/walls-and-gates/ 题目: You are given a m x n 2D grid initialized ...
- Audio Session Interruption
近期处理了一个挂断电话后,莫名手机开始播放音乐的Bug. 所以顺便在这总结一下,对于IOS的AudioSession中断的几种处理情况. 一.通过C语言的init方法配置interruptionl回调 ...
- 解决SVN不显示状态图标
打开注册表,找到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlay ...
- java-mvc
定义 一种开发模式 Model-View-Controller Model 模型层 实体类.DAO(模型层实现数据库访问和业务逻辑) Controller 控制层 Servler.Filter(控制层 ...
- Webstorm的序列号和证书
User Name: ------------name-------------- EMBRACE -------------name-------------- License Key: ===== ...
- Eclipse中使用自己封装的jar包的过程
在包名上右键,选择Export"" 经过上面的步骤,成功导出了可运行jar包,下面在另一个自己的工程里引入这个jar包 最终效果如下:可见包已经可以正常使用了!! 运行自己的jar ...
- C++之路进阶——bzoj1934(善意的投票)
F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser hyxzc Logout 捐赠本站 Notice:由于本OJ建立在 ...
- hihocoder 网易游戏2016实习生招聘在线笔试 解题报告
比赛笔试链接:http://hihocoder.com/contest/ntest2015april/problems 题目就不贴了. 1.推箱子. 思路:纯模拟. 代码(28MS): #includ ...
- android 消息机制
一.Android应用程序的主线程主要用于更新UI界面,并且主线程不能做耗时操作,否则会引起ANR:这种情况下需要开一个子线程来进行耗时操作,动作完成之后,子线程发消息给主线程通知其更新UI显示,常见 ...
