前言
读完这篇文你会收获到以下知识点
- NodeJs介绍
- 如何安装环境以及简单的应用
- 关于CoomnJs的介绍
1.Node介绍
Node是可以在服务器端运行js文件的一个基于Chrome浏览器V8引擎的平台,Node是基于事件驱动的异步架构这样会使得它的性能大大提升Nod不像浏览器整天和DOM树,样式树打交道,它更加注重的是如何提升服务的性能。
Node还有三大特性:
- 单线程
首先单线程设计主要是因为Node平台是运行Js语言,JavaScript本身就是一门单线程的语言,Js设计成单线程的主要原因是Js主要是用来操作浏览器的DOM树,如果是一个复杂的多线程环境,那么就会在同步异步问题上出现过多的性能损耗,并且浏览器绘制DOM树的时候也可能出现问题。 - 异步I/O
Node中异步I/O的设计大大提高了程序的运行效率,那么先给大家简单介绍介绍异步I/O的思想。
异步I/O就想我们前端在发送AJAX()请求一样,当我们发请求之后我们并不会立即拿到服务请响应的结果,那么在等待结果的这段时间我们就可以先进行其他操作,等到拿到响应结果我们在去执行相对应的操作,那么很多网友可能又会问?我们如何知道我们的请求有结果了,这就又要牵扯出一个新的问题“EventLoop”事件循环。这个下次再给大家分析,那么Node的底层就是利用这样的原理进行构建,所以Node底层有很多的异步I/O的API,当我们在进行文件的读写过程会大大的减少耗时,提升性能。 - 事件驱动
事件驱动主要是利用回调函数来实现,代码中使用回调函数的方式可以使得整个代码变得更加轻量化,降低代码的耦合度,因为每一个回调函数只会在特定的情况下被触发,函数才会被执行,易于维护代码。
简单了解完Node接下来主要给大家介绍一下如何使用node运行你的Js文件,以及如何使用Node搭建一个微服务器实现前后端的全栈开发
2.Node的安装及使用
1.安装
https://nodejs.org/en/
官网下载最新版本的node环境,在本机进行安装,无脑下一步
2.查看版本
打开cmd窗口输入一下命令查看版本号
node -v
3.安装完成之后就借助node平台运行Js代码在你的js文件同级目录下打开cmd窗口
node helloword.js
在cmd窗口查看对应的输出值
4.利用Node搭建小型服务器
重点来了:
首先介绍原生Node创建服务器的方法,主要是通过引入http对象来实现
var http = require(‘http’)
http.createServer((request,respone)=>{
//设置请求头的格式
response.WriteHead(200,{'Content-type':'text/html;charset=utf-8'})
//设置响应的数据
respone.write('hahaha')
//结束连接
respone.end()
}).listen(8080)
//设置监听的端口号
//当你访问本机的8080端口时Node会返回给你‘hahaha’这个字符串
使用Express框架或者Koa框架搭建,我这里使用Express框架来做演示
//首先Express模块是基于Http模块之上进行的一次封装
//Express是对Http.CreateServer()中添加了一个中间层来先处理在传递给Http.CreateServer()
1.使用npm安装
npm install --save express
2.引入
var express = require(‘express’)
3.实例化对象
var Server = express()
4.创建服务
有get和post两种方式
url主要是监前端从那个路由跳来,执行对应的操作
Server.get('/login',(req,res)=>{
//连接数据库,然后进行数据操作,返回给前端以mongoDB为例
1.安装mongoDb
npm install --save mongose
2.引入
var mongose = require(‘mongose’)
3.连接
mongose.connect('地址',{useNewUrlParser:true,useUnifinedTopology:true},(err)=>{
if(!err){
console.log('成功')
}
})
res.send("msg")
})
Server.listen(8080)
5.运行服务
node Server.js
两种方式都实现了简单服务器的搭建,这样我们就可以通过node搭建服务器,mongose作为数据库来进行简单的全栈开发
3.CommonJS规范
在JavaScript的漫长使用过程中,由于一直是针对浏览器工作的语言,所以一直没有标准的规范约束,缺少标准库,随着web技术的深入发展,以及ES5的的提出,JavaScript的缺点被暴露在光天化日之下,比如:标准库较少,没有模块化,缺少包管理工具等问题
CommonJS主要做了以下几个事情
1.模块规范
引入
var module = require(‘XXXX’)
导出
exports.modules = function(){}
模块标识符
小驼峰命名
结语
这篇文章主要对我在日常对Node中常用技术的一次简单整理,有很多地方不够细致,希望大家可以相互留言讨论,指出不足之处,共同进步。