node.js
1. 什么是node.js?
node.js是一个基于Chrome v8引擎的javascript 运行环境。Node.js使用了一个事件驱动、非阻塞式 I/O的模型,使其轻量又高效。(由c++语言编写的)Node.js的包管理器npm,成为世界上最大的开放源代码的生态系统。 简单说:编写高性能网络服务器的javascipt工具包(用于js开发服务端程序) 单线程、异步、事件驱动
2. node.js是一个Javascript运行环境(runtime)。Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
3. nodejs可以做什么?
node.js可以解析js代码(没有浏览器安全级别的限制),提供很多系统级别的api,如:文件的读写、进程的管理、网络通信。。。。
4. 框架的选择
比较热门的包括:
Express(Sails),koa,Hapi
Express:完善、稳定、文档全、社区大
koa :超前(koa2)
Hapi:复杂(一个简单的helloworld都要做很多堆砌),适合复杂的大型项目
egg(阿里巴巴团队刚推出的)
5. nodejs模块化开发规范(commonjs)
定义模块:例如ajax.js文件
varobj={
get:function(){
},
post:function(){
}
}
module.exports=obj //把这个obj需要暴露出来,其他的页面才可以访问到
加载自定义模块
varobj=require('./ajax') //自定义的需要加./,自带的不需要
6. npm是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包
7. devDependencies 开发依赖 大部分为工具 例如:gulp webpack 压缩js dependencies 项目依赖 axios
常用命令
1. 初始化:npm init
2. 查看npm安装的版本 : npm –v
3. 查看当前目录下已安装的node包: npm list
4. 项目依赖:npm install axios 或 npm i axios
5. 开发依赖:npm install gulp --save-dev 或 npm i gulp –D
6. 全局安装 : 在终端中可以使用某一个命令npm i gulp –g
7. npm uninstall moudleName:卸载node模块。
8. 项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包,这样代码提交到git时,就不用提交node_modules这个文件夹了。(意思是在hbuilder中把文件删除了,但是在node.js中并没有卸载过,这时候在node.js中输入npm install就会重新安装回来)
Nrm
1. 什么是nrm?
nrm 是一个 npm 源管理器,允许你快速地在 npm 源间切换(因为如果不换的话,我们每次都要在国外的npm下载,太慢啦,所以可以通过全局安装nrm来把npm源改在国内)
2. 三步:npm i nrm –g //全局安装nrm
nrm ls //查看全局的nrm的list列表
nrm use taobao //选择要修改的npm源,这里选的是淘宝
监听(nodemon)
1. 自动监听依赖:npm install -g nodemon ctrl+c结束
搭建简易的服务器
const http = require('http')
let server = http.createServer((req,res)=>{
console.log('接受到客户端了请求')
res.setHeader('content-type','text/html;charset=utf-8')//请求头
//判断(后端路由)
if(req.url == '/' || req.url == '/index'){
res.write('hello index 首页')
}else if(req.url == '/login'){
res.write('hello login 登陆')
}else{
res.write('404')
}
res.write('hello word'); //响应
res.end(); //响应结束
})
server.listen(3000,'localhost',function(){ //监听,访问地址
console.log('服务器启动成功')
})