Node的介绍

简介: Node的介绍

为什么要学习Node.js


  • 企业需求
  • 具有服务端开发经验更改
  • front-end
  • back-end
  • 全栈开发工程师
  • 基本的网站开发能力
  • 服务端
  • 前端
  • 运维部署
  • 多人社区

Node.js是什么


  • Node.js是JavaScript 运行时
  • 通俗易懂的讲,Node.js是JavaScript的运行平台
  • Node.js既不是语言,也不是框架,它是一个平台
  • 浏览器中的JavaScript
  • EcmaScript
  • 基本语法
  • if
  • var
  • function
  • Object
  • Array
  • Bom
  • Dom
  • Node.js中的JavaScript
  • 没有Bom,Dom
  • EcmaScript
  • 在Node中这个JavaScript执行环境为JavaScript提供了一些服务器级别的API
  • 例如文件的读写
  • 网络服务的构建
  • 网络通信
  • http服务器
  • 构建与Chrome的V8引擎之上
  • 代码只是具有特定格式的字符串
  • 引擎可以认识它,帮你解析和执行
  • Google Chrome的V8引擎是目前公认的解析执行JavaScript代码最快的
  • Node.js的作者把Google Chrome中的V8引擎移植出来,开发了一个独立的JavaScript运行时环境
  • Node.js uses an envent-driven,non-blocking I/O mode that makes it lightweight and efficent.
  • envent-driven 事件驱动
  • non-blocking I/O mode   非阻塞I/O模型(异步)
  • ightweight and efficent.   轻量和高效
  • Node.js package ecosystem,npm,is the larget scosystem of open sourcr libraries in the world
  • npm 是世界上最大的开源生态系统
  • 绝大多数JavaScript相关的包都存放在npm上,这样做的目的是为了让开发人员更方便的去下载使用
  • npm install jquery

Node能做什么


  • web服务器后台
  • 命令行工具
  • npm(node)
  • git(c语言)
  • hexo(node)
  • ...
  • 对于前端工程师来讲,接触最多的是它的命令行工具
  • 自己写的很少,主要是用别人第三方的
  • webpack
  • gulp
  • npm

起步


安装Node环境


  • 傻瓜式安装,一路next
  • 安装过再次安装会升级
  • 确认Node环境是否安装成功
  • 查看node的版本号:node --version
  • 或者node -v
  • 配置环境变量

解析执行JavaScript


  1. 创建编写JavaScript脚本文件
  2. 打开终端,定位脚本文件的所属目录
  3. 输入node  文件名执行对应的文件

注意:文件名不要用node.js来命名,也就是说除了node这个名字随便起,最好不要使用中文。


文件的读写


文件读取:


//浏览器中的JavaScript是没有文件操作能力的
//但是Node中的JavaScript具有文件操作能力
//fs是file-system的简写,就是文件系统的意思
//在Node中如果想要进行文件的操作就必须引用fs这个核心模块
//在fs这个和兴模块中,就提供了人所有文件操作相关的API
//例如 fs.readFile就是用来读取文件的
//  1.使用fs核心模块
var fs = require('fs');
// 2.读取文件
fs.readFile('./data/a.txt',function(err,data){
   if(err){
        console.log('文件读取失败');
   }
    else{
         console.log(data.toString());
    }
})


文件写入:


//  1.使用fs核心模块
var fs = require('fs');
// 2.将数据写入文件
fs.writeFile('./data/a.txt','我是文件写入的信息',function(err,data){
   if(err){
        console.log('文件写入失败');
   }
    else{
         console.log(data.toString());
    }
})


http


服务器:


// 1.加载http核心模块
var http = require('http');
// 2.使用http.createServer()创建一个web服务器
var server = http.createServer();
// 3.服务器要做的事儿
// 提供服务:对数据服务
// 发请求
//  接收请求
//  处理请求
//  反馈(发送响应)
//  当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数:回调处理函数
server.on('request',function(){
    console.log('收到客户的请求了')
})
// 4.绑定端口号,启动服务
server.listen(3000,function(){
    console.log('runing...')
})


总结与思考


  1. 异步编程:Node.js 采用了非阻塞式 I/O 和异步编程的方式,可以处理高并发、高吞吐量的请求。这种异步编程模型对于 I/O 密集型应用非常适合,可以提高系统的响应速度和吞吐量。
  2. 事件驱动:Node.js 基于事件驱动的模型,通过触发事件和注册回调函数的方式来处理请求。这种模型可以有效地减少系统的资源占用,提高系统的可扩展性和可维护性。
  3. 模块化:Node.js 支持模块化的编程方式,可以将代码分成多个模块,每个模块可以单独开发、测试和维护,使得系统更加易于开发和维护。
  4. 跨平台性:Node.js 可以运行在多种操作系统上,包括 Windows、Linux 和 Mac OS 等,这使得开发者可以在不同的平台上开发和运行应用程序。
  5. 生态系统:Node.js 有一个庞大的生态系统,包括了大量的第三方模块和工具,这些模块和工具可以方便地扩展 Node.js 的功能,使得开发更加高效和便捷。

总的来说,Node.js 是一款非常适合开发高并发、高吞吐量的应用程序的 JavaScript 运行环境,具有异步编程、事件驱动、模块化和跨平台性等优点。在选择开发技术时,应该根据实际的业务需求和技术特点来进行选择。

目录
相关文章
|
边缘计算 数据可视化 物联网
node-red介绍
Node-RED最初是IBM在2013年末开发的一个开源项目——基于数据流(dataflow)的可视化编程工具。
node-red介绍
|
Java 持续交付 开发者
使用 Docker 容器化 Java Web 应用:提高开发和部署效率
【4月更文挑战第4天】Docker 作为轻量级容器技术,提升了 Java Web 应用的开发和部署效率。它提供类似生产环境的本地开发体验,减少环境配置时间,保证应用隔离性与稳定性。Docker 改善了部署流程,实现跨环境的无缝迁移,支持自动化构建、部署和扩展,并促进持续集成和持续部署,助力企业实现更高效、可靠的软件生命周期管理。
315 8
|
监控 网络协议 网络安全
免费网站监控工具推荐
如果您正在寻找一款免费、功能强大且易于使用的网站监控工具,Spug 监控助手绝对是您的不二之选。无论您是个人站长还是企业管理员,Spug 监控助手都能满足您的网站监控需求。
400 9
|
安全 应用服务中间件 网络安全
Nginx入门 -- 了解Nginx中证书配置
Nginx入门 -- 了解Nginx中证书配置
401 0
|
达摩院 供应链 JavaScript
网络流问题--仓储物流调度【数学规划的应用(含代码)】阿里达摩院MindOpt
本文通过使用MindOpt工具优化仓储物流调度问题,旨在提高物流效率并降低成本。首先,通过考虑供需匹配、运输时间与距离、车辆容量、仓库储存能力等因素构建案例场景。接着,利用数学规划方法,包括线性规划和网络流问题,来建立模型。在网络流问题中,通过定义节点(资源)和边(资源间的关系),确保流量守恒和容量限制条件下找到最优解。文中还详细介绍了MindOpt Studio云建模平台和MindOpt APL建模语言的应用,并通过实例展示了如何声明集合、参数、变量、目标函数及约束条件,并最终解析了求解结果。通过这些步骤,实现了在满足各仓库需求的同时最小化运输成本的目标。
|
存储 算法 搜索推荐
编程之旅中的算法启示
【8月更文挑战第31天】在编程世界的迷宫里,算法是那把钥匙,它不仅能解锁问题的答案,还能引领我们深入理解计算机科学的灵魂。本文将通过一次个人的技术感悟旅程,探索算法的奥秘,分享如何通过实践和思考来提升编程技能,以及这一过程如何启示我们更深层次地认识技术与生活的交织。
|
JavaScript 前端开发 数据可视化
ECharts 雷达图案例001-自定义节点动画
使用ECharts创建自定义雷达图,通过JavaScript动态更新高亮和交互反馈,增强用户体验。关键步骤包括:开启动画效果,数据更新时保持图表状态,鼠标悬浮时动态高亮指标,优化动画性能。案例展示了ECharts在数据可视化中的灵活性和表现力。[查看完整案例](https://download.csdn.net/download/No_Name_Cao_Ni_Mei/89454380)。
837 0
 ECharts 雷达图案例001-自定义节点动画
|
域名解析 监控 网络协议
Domain
【6月更文挑战第26天】
197 1
|
人工智能 测试技术 vr&ar
GPT超越扩散、视觉生成Scaling Law时刻!北大&字节提出VAR范式
【4月更文挑战第22天】北京大学与字节跳动联合研发的Visual AutoRegressive modeling (VAR)是一种创新的图像生成范式,通过“下一尺度预测”而非传统的“下一标记预测”学习视觉分布。VAR在ImageNet基准上提升了自回归模型的FID和IS,同时加快了20倍推理速度,超越扩散变换器。该模型展示出与大型语言模型相似的缩放定律,解决了自回归模型的计算成本问题和扩散模型的速度不足。VAR具备零样本泛化能力,适用于图像修复等任务,未来研究将探索其在高分辨率图像和视频生成中的潜力。[论文链接](https://arxiv.org/abs/2404.02905)
287 1
|
机器学习/深度学习 人工智能 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第8天】Databricks在大数据分析和AI开发中表现出色,简化流程并提高效率。文中列举了三个应用场景:数据湖分析、实时流处理和AI机器学习,并阐述了Databricks的一体化平台、云原生弹性及企业级安全优势。博主认为,Databricks提升了研发效能,无缝集成Azure生态,并具有持续创新潜力,是应对大数据挑战和加速AI创新的理想工具。
1304 1