node.js study
来源:互联网 发布:手机拍摄淘宝视频 编辑:程序博客网 时间:2024/06/05 04:54
目录
- 目录
- 一 什么是nodejs
- 二 nodejs的用处为何选择nodejs
- 三 nodejs安装
- 1官网下载安装包
- 2配置
- 配置用户名称和e-mail地址
- 配置编辑器
- 检查配置
- 获取帮助
- 四 nodejs的学习
- 一常用的全局变量global
- 1console
- 2process
- 二模块和包
- 三创建一个web服务器
- 一常用的全局变量global
一 什么是nodejs
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
二 node.js的用处(为何选择node.js)
NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的 DOM事件,并且拥有一大群程序员,因此就成为了天然的选择。
三 nodejs安装
1、官网下载安装包
https://nodejs.org/en/download/
◆ 一顺安装完成后,在cmd控制台输入:node -v,控制台将打印出:v4.2.1,出现版本提示表示安装成功。
◆ 新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以使用cmd命令行输入”npm -v”来测试是否成功安装。
2、配置
♠ 配置用户名称和e-mail地址
当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中
$ git config --global user.name "eatgirl_hui" $ git config --global user.email "xxxxxx"
♠ 配置编辑器
本人使用webstorm编辑器
选择文件–>设置–>语言和框架–>Node.js and NPM;
Node interpreter会自动识别,点击Configure选项,下载node.js的source code包;
下载完成点击configure即可。
♠ 检查配置
$ git config --list
♠ 获取帮助
$ git help <verb> $ git <verb> --help $ man git-<verb>
四 node.js的学习
(一)常用的全局变量global
node.js常用内置对象和方法
1、console
//(1)输出里面的信息,warn和error的颜色同log、info不同console.log("this is a log");console.info("this is an info");//信息console.error("this is an error");//错误console.warn("this is a warn");//警告
//(2)测时间 console.time/console.timeEnd,输出test: 2msconsole.time("test");for(var i=0;i<1000000;i++){}console.timeEnd("test");//注:需要和time里的参数字符串保持一致
2、process
//process设置编码(注意:只设置如此就ok,不可设置gbk等)process.stdin.setEncoding("utf-8");
process.stdin.on
两种控制台输入,输出文字信息方法:”data”和”readable”
//1、输入文字,然后输出(手动输入,然后会输出)process.stdin.on("data",function(data){ console.log(data);});//2、输入文字,然后输出process.stdin.on("readable",function(){ var aa=process.stdin.read(); console.log(aa);});
退出触发事件:”exit”
//退出触发事件process.on("exit", function () { console.log("this will exit");});
改变退出的默认行为
process.on("SIGINT",function(){ console.log("process has a sigint")});
process.cwd()
//受webstrom的限制结果相同//console.log("dirname:"+__dirname);//console.log(process.cwd());//执行node命令的目录
process.argv
获取附加信息
//process.argv可获取附加信息console.log(process.argv);// 输出结果如下//[ 'E:\\soft\\nodejs\\node.exe',// 'c:\\Users\\hui\\WebstormProjects\\myproject\\globle.js' ]
(二)模块和包
通过require引入模块
var sum = require("./sum");console.log(sum.sum(100));
通过exports输出
//求和函数function sum(n){ var sum = 0; for(var i=1;i<=n;i++){ sum += i; } return sum;}exports.sum = sum;
文件相关操作的相关内容fs和path
fs
规则:模块的名字和包的名字保持一致
同步代码会阻塞下面代码的执行
异步读取不会阻塞下面代码的执行
var fs = require("fs");//异步读取方法readFile fs.readFile('sum.js','utf-8', function (err,data) { if(err){ console.log(err); }else{ console.log(data); } });
//同步读取readFileSyncvar data = fs.readFileSync('sum.js', 'utf-8');console.log(data);
path
var path=require('path');console.log(path.sep);//不同平台的分隔斜杠符不同console.log(path.extname('a.jpg'));//获取最后的扩展名,输出为.jpg
(三)创建一个web服务器
在浏览器中请求响应机制如下:
Node Http Server:
require(‘http’)
var server = http.createServer(cb);
端口:在服务器硬件上或操作系统中运行的程序
url:http(url请求的协议)://www.baidu.com(百度网站的域名)(:80(省略的端口号))*/s?…….*(提交的参数get请求的参数会在url中)
var http = require('http'), fs = require('fs'),//加载文件 server = http.createServer(function(request,response){ fs.readFile('index.html','utf-8',function(err,data){ response.end(data);//响应结束 }); });//启动server需要监听端口//http默认是80端口//端口号是从1~65535server.listen(8080);
以下程序说明:
一个程序只能被一个端口号监听
一个端口号只能被一个程序监听
var http = require('http'); http.createServer(function(request,response){ }).listen(8080);//输出报错信息//events.js:141//throw er; // Unhandled 'error' event//^////Error: listen EADDRINUSE :::8080
另外也可以这样写
var http = require('http'), fs = require('fs'), url = require('url');http.createServer(function(request,response){ var urlobj = url.parse(request.url); console.log(urlobj); var pathname = urlobj.pathname; var query = urlobj.query; if(pathname==='/'){ readFileAndResponse('/index.html',response); }else if(pathname==='/ajax'){ response.end('this is a ajax response'); }else{ readFileAndResponse(pathname,response); }}).listen(8080);function readFileAndResponse(pathname,response){ fs.readFile(pathname,'utf-8', function (err,data) { if(err){ response.writeHead(404); response.end('file not found'); }else{ response.end(data); } });}
本章所讲的示例demo下载:demo
- node.js study
- node.js study
- study js
- js study
- JS study notes.
- D3 JS study notes
- js node
- Node.JS:
- node js
- node.js
- node.js
- node.js
- Node.js
- node.js
- Node.js
- Node.Js
- node js
- Node.js
- Gradle 笔记——Java构建入门
- xcode7不允许HTTP传输的过渡办法
- mac安装redis3.0.5分布式集群
- HttpClient设置请求超时和读取超时
- ios app 修改名称后,收到的推送通知 显示的仍然是上一个名称 问题
- node.js study
- iOS工程中添加cocoapods
- 关于Struts2框架下使用servlet的配置
- c++父类子类同名变量
- 常用命令之 -- ls
- PHP与C(或其它语言)通过消息队列进行通讯,完整代码
- Strut2验证框架问题
- 1003. Emergency (25)
- failure during conversion to COFF