NodeJs常用技术点分析

news/2024/7/10 23:06:16 标签: node.js, es6, typescript

前言

读完这篇文你会收获到以下知识点

  • 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中常用技术的一次简单整理,有很多地方不够细致,希望大家可以相互留言讨论,指出不足之处,共同进步。


http://www.niftyadmin.cn/n/1319095.html

相关文章

JDK1.5 线程池

Executors类主要方法: a. static ExecutorService newCachedThreadPool() 产生一个ExecutorService对象,这个对象带有一个线程池,线程池的大小会根据需要调整,线程执行完任务后返回线程池,供执行下一次任务使用 …

TypeScript技术分析(1)

前言 这是TypeScript初学者必看系列的第一篇文章,这个系列主要会向大家系统的介绍TypeScript语言的基础知识点,以及一些项目中使用的技巧,希望大家可以喜欢,关注。好了废话不多,让我们一起进步,奥利给。。…

XtraReport应用(1)(XtraReport From File)

最近在研究dev xtraReport的应用,虽然从08年就开始接触dev,但是它的报表还是头次接触。在网上找了很多资料,但看来看去无非就那么两篇,呵呵,真是天下文章一大抄!相对水晶报表,xtraReport在设计上…

关于Git版本管理技术详解

目录写在前面的话1.Git是什么?2.SVN和Git的区别如何安装Git3.Git的相关配置4.Git的工作流程5.Git常用命令合集6.推送到远程仓库的步骤如下7.常见报错信息8.结语写在前面的话 将自己的项目上传到远程仓库,我们需要借助一个工具,俗话说工欲善其…

JDK1.5 Cyclicbarrier实例

CyclicBarrier类 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待…

从源码入手--搞懂Vue响应式、双向绑定原理

目录前言1.何为双向数据绑定2.Vue双向绑定3.实现原理4.Vue双向绑定不足之处5.结语6.说明前言 vue双向绑定的原理作为前端面试题目中一直占着举足轻重的地位,这篇文章主要是从Vue源码的角度去分析,尤大是如何设计,实现,双向数据绑…

What to learn

{转载高人博客} 计算机专业出身的人,如果要从事嵌入式软件的开发也需要非常复杂的学习路线。。。。我给出了比较科学的学习路线。。。当然我也不是所有都看过,因为实在太多了 1、基础知识: 目的:能看懂硬件工作原理,但…

JDK1.5 Semaphore实例

Semaphore类 一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实…