node初识

2023-11-02

一、什么是node

node官网:https://nodejs.cn/
在这里插入图片描述

Node.js是一个开源的、跨平台的JavaScript运行环境。它基于Chrome V8 JavaScript引擎,使得JavaScript可以在服务器端运行Node.js具有事件驱动、非阻塞式I/O的特性,适用于开发高性能的网络应用。它广泛应用于Web服务器、后端API开发、命令行工具等领域。

二、Node.js和javascript之间的关系

Node.js是一个基于Chrome V8引擎构建的JavaScript运行时环境,它让JavaScript可以在服务器端运行。因此,Node.js和JavaScript之间存在一定的关系,可以从以下几个角度进行分析。

  1. 相同点:Node.js是基于JavaScript语言构建的。因此,它们共享相同的语法、基本数据类型、操作符等特性。开发者可以使用相同的编程技巧和知识来编写Node.js和JavaScript应用程序。

  2. 不同点:Node.js运行环境不同于浏览器环境,它提供了一些额外的API(例如文件系统、网络、进程等),用于在服务器端进行编程。而在浏览器环境中,JavaScript主要用于处理与用户界面相关的任务。

  3. 单线程:JavaScript是单线程的语言,这意味着它无法同时执行多个任务。在浏览器中,这可能导致长时间运行的任务阻塞用户界面响应。但是在Node.js中,通过使用事件驱动和非阻塞I/O模型,可以充分利用单线程,处理大量并发的请求,提高应用程序的吞吐量和性能。

  4. 生态系统:JavaScript拥有庞大的生态系统,有许多优秀的开源库和框架可供选择。而Node.js也拥有自己的生态系统,包括Express.js、Socket.IO、Mongoose等流行的库和框架,用于快速开发服务器端应用程序。

  5. 代码重用:由于Node.js与浏览器中执行的JavaScript代码非常相似,因此在某些情况下,可以将代码从客户端(浏览器)移植到服务器端(Node.js)或者相反。这种代码重用可以提高开发效率,并减少需要学习的新技术和语言。

Node.js是构建在JavaScript之上的运行时环境,它扩展了JavaScript的能力,使其可以在服务器端运行。虽然它们在一些方面有所不同,但它们之间紧密相关,并共同构成了现代Web开发的重要组成部分。

三、node能做什么

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,主要用于服务器端的编程。它具有以下特点

  1. 高性能:Node.js采用非阻塞的事件驱动模型,可以处理大量并发连接,适合高性能的网络应用程序。

  2. 跨平台:Node.js可以运行在多个操作系统上,如Windows、Linux、Mac OS等。

  3. 快速开发:Node.js使用JavaScript作为开发语言,具有简洁、灵活的语法,能够迅速开发出高效的应用程序。

  4. 易于扩展:Node.js拥有丰富的模块库,可以轻松地扩展功能,满足各种需求。

Node.js 可以做以下事情:

  1. 服务器端开发:Node.js 是一个基于 JavaScript 运行的服务器端开发环境,可以用来开发高性能、可扩展的网络应用程序和服务端 API。

  2. 网络应用开发:Node.js 提供了丰富的网络应用开发能力,可以处理 HTTP 请求、构建 Web 应用、实现实时通信等。

  3. 单页应用开发:使用 Node.js 可以方便地开发单页应用,通过 Express、Koa 等 Web 框架,可以使用 JavaScript 来处理路由、模板等功能。

  4. 命令行工具开发:Node.js 提供了创建命令行工具的能力,可以通过编写 JavaScript 脚本来快速开发自己的命令行工具。

  5. 数据库操作:Node.js 有丰富的数据库操作库和框架,可以方便地对各种类型的数据库进行读写操作,如 MongoDB、MySQL 等。

  6. 实时通信:使用 Node.js 可以方便地实现实时通信功能,如聊天室、推送通知等,常用的框架有 Socket.io、WebSocket 等。

  7. 微服务架构:Node.js 可以作为微服务架构中的一个节点,实现服务之间的通信、数据交互等。

总之Node.js 是一个非常灵活和强大的开发环境,可用于构建各种类型的网络应用程序和服务

四、node下载与安装

node官网下载地址:https://nodejs.cn/download/
在这里插入图片描述
去官网下载长期稳定版就可以了,根据自己的系统选择相应的安装包

这里我推荐大家用nvm管理node版本,因为在实际开发过程中,比如vue项目,可能你安装的node版本和现在的项目中的依赖有不兼容的情况,这就需要切换node环境,这时如果我们不用nvm,那么只能卸载当前的node,重新下载安装一个和当前项目依赖符合node版本,很费时费力。

至于什么是nvm,如何安装nvm来管理node版本,感兴趣的小伙伴可以看看这个nvm的下载安装

安装完成之后,可以使用node -v命令查看当前版本,来确定是否安装成功。

node -v

在这里插入图片描述
如果显示了版本号,代表安装成功啦。

五、第一个node程序

  1. 创建一个新的.js文件,例如test.js,可以使用任何文本编辑器打开。

  2. 在test.js文件中编写Node程序的代码。例如,以下是一个简单的示例程序:

console.log("hello, node");

在这里插入图片描述

  1. 保存并关闭hello.js文件。

  2. 打开终端(命令提示符或终端窗口),并导航到保存了hello.js文件的目录。

  3. 在命令行中输入以下命令来执行Node程序:

node test.js

  1. 按下回车键,Node会解析并执行test.js文件中的代码。

  2. 程序的输出将显示在终端窗口中,对于上述示例程序,输出将是:

hello node!

在这里插入图片描述

这就是如何执行一个Node程序的简单示例。你可以根据需要编写更复杂的程序,并按照相同的步骤来执行它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node初识 的相关文章

  • 我可以通过什么方式混合 jQuery 和 vanilla JavaScript

    我有一个用普通 JavaScript 编写的 Web 应用程序 我想用 jQuery 动画来增强它 并使用我在各种 jQuery 插件中找到的一些功能 例如上传 http www uploadify com 可以通过什么方式将 jQuery
  • 为什么省略分号会破坏这段代码?

    或者换句话说 为什么分号插入失败 导致下面的代码被破坏 function Foo Foo prototype bar function console log bar lt missing semicolon function Foo pr
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • JavaScript 字符串中的脚本标签[重复]

    这个问题在这里已经有答案了 我遇到一个问题 即 JavaScript 中带引号的字符串内有结束脚本标记 并且它正在杀死脚本 我认为这不是预期的行为 可以在这里看到这样的示例 http jsbin com oqepe edit http js
  • JAVASCRIPT - 为什么这个对象没有改变?

    function myFunc theObject theObject make Ford model Focus year 2006 var mycar make Honda model Accord year 1998 var x my
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • 我可以在 GWT 中使用第三方 Javascript 库吗

    例如穆工具 用 js 编码对我来说很舒服 但显然不适合所有人 你当然可以 最好的事情就是给自己写一些好看的JavaScript 覆盖类型 http code google com webtoolkit doc latest DevGuide
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • 从链接打开本地文件夹

    如何通过单击任何链接打开本地文件夹视图 我尝试了很多选择 例如 a href Open folder a or a Open folder a or a Open folder a 解决方案 启动可下载链接 以下内容适用于所有浏览器 但一如
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • node.js 模块/导出系统:是否可以将模块导出为函数

    我想在 Dispatch js 中做这样的事情 function handle msg exports handle 这在调用index js中 var dispatch require Dispatch dispatch data 有任何
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • 如何从 CSS 选择器中提取类名?

    故事 我目前正在构建一个 ESLint 规则 以警告在 CSS 选择器定位器中使用引导布局导向和角度技术类 目前我在字符串方法中使用简单的子字符串 for var i 0 i lt prohibitedClasses length i if
  • 为什么 call 比 apply 快那么多?

    我想知道是否有人知道why call比apply 在 Chrome 中 速度大约快 4 倍 在 Firefox 中快 30 倍 我什至可以制作自定义原型 apply2 在大多数情况下 运行速度是apply 这个想法取自角度 Function
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询

随机推荐

  • C语言volatile关键字的作用

    volatile是易变的 不稳定的意思 volatile关键字和const一样是一种类型修饰符 用它修饰的变量表示可以被某些编译器未知的因素改变 比如操作系统 硬件或者其它线程等 遇到这个关键字声明的变量 编译器对访问该变量的代码就不再进行
  • TypeError: Cannot read properties of undefined (reading ‘licenseNum‘) at Proxy

    这是因为在定义的时候 我们只定义了一层的结构 比如 info 其实后端返回的是 info goods goodsName cheng 此时调用goodsName info goods goodsName 就会报错info goods und
  • 2021-12-24 vue项目兼容IE

    Vue 不支持 IE8 及以下版本 因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性 但对于 IE9 Vue 底层是支持 vue cli4脚手架搭建的前端项目 vue版本2 6 12 browserslist配置 指
  • System.Single

    浮点 类型 别名 float System Single double System Double decimal System Decimal 字符 类型 别名 允许的值 bool System Boolean true flase ch
  • 跟阿铭学Linux第六章答案,Linux磁盘管理

    hda一般是指IDE接口的硬盘 hda指第一块硬盘 hdb指第二块硬盘 等等 sda一般是指SATA接口的硬盘 sda指第一块硬盘 sdb指第二块硬盘 等等 du b显示的是文件的实际大小 du k显示的是文件占用的磁盘块的大小 所以磁盘块
  • 性能测试压力测试

    性能测试指标 并发用户数 TPS Transaction Per Second 每秒事务数 系统的性能由TPS决定 mysql 记一次接口压力测试与性能调优 Apache JMeter是Apache组织开发的基于Java的压力测试工具 用于
  • 最长公共子序列 蓝桥杯 1189

    题目描述 给定一个长度为n数组A和一个长度为m数组B 请你求出它们的最长公共子序列长度为多少 输入描述 输入第一行包含两个整数n m 第二行包含n个整数ai 第三行包含m个整数bi 1 lt n m lt 10 3 1 lt ai bi l
  • BearPi-HM Nano HarmonyOS 环境搭建

    BearPi HM Nano HarmonyOS 环境搭建 BearPi HM Nano 介绍 BearPi HM Nano开发板是一块专门为鸿蒙OS设计的鸿蒙OS开发板 板载高度集成的2 4GHz WLAN SoC芯片Hi3861 并板载
  • java mongodb 关闭连接_未释放资源的教训,开发MongoDB连接一定要关闭连接

    废不少工夫将数据存储 全部迁移至mongodb 未作大量改动则是主因 但遇到奇怪的现象 程序跑起不久后 mongodb即假死 另起客户端想登陆mongodb都不成 要重启mongodb服务器才好转 分析原因是mongodb的连接池满掉且不释
  • elasticsearch学习之cross_fields字段使用

    cross fields字段 在查询阶段解决信号冲突问题 问题 The cross fields type is particularly useful with structured documents where multiple fi
  • Java进阶--Java垃圾回收机制全面解析

    本文同步发布在我的个人博客 如需转载请注明出处 提起Java的垃圾回收机制大家应该都有所了解 它不仅是面试的常客 也是Java体系中相当重要的一块知识 深入理解Java的GC机制 不仅有助于我们在开发中提高程序的性能 更有了在面试官面前炫
  • MySQL索引怎么用?究竟能有多快?看完这篇你就懂了!

    本文介绍的是MySQL索引的具体使用 原理以及本质结构请看我写的上一篇文章 MySQL索引凭什么能让查询效率提高这么多 原理是什么 目录 索引使用的优势 索引使用的劣势 1 维护成本高 2 所占空间大 索引的分类 索引的创建规则 索引的CR
  • 约瑟夫环(数组解决)

    约瑟夫环问题是一个很经典的问题 一个圈共有N个人 N为不确定的数字 第一个人的编号为0或者1 两个都可以 看你的程序如何编写 假设这边我将第一个人的编号设置为1号 那么第二个人的编号就为2号 第三个人的编号就为3号 第N个人的编号就为N号
  • photoshop不能保存bmp格式

    文章目录 前言 一 显示图层无法导出当前的bmp格式图片 二 图层合并 总结 前言 使用位图进行深度学习的特征点标定时间比正常图片格式的时间要缩短一半 所以使用ps新增异常点 但是新增图层后无法保存bmp的格式 一 显示图层无法导出当前的b
  • 详解Spring Ioc(控制反转)

    Spring Ioc 控制反转是一个比较抽象的概念 可以举例来说明 生活中 人们要用到一种东西 人们的基本想法就是找到东西 比如想喝果汁 在没有饮品店的日子里 最直接的做法就是 买果汁机 水果 准备开水 这时我们 主动 创造的过程 也就是一
  • Python自动化测试——基础理论思维导图

    1 自动化测试的定义 2 自动化测试的优势 3 自动化测试和手工测试相比 有哪些区别 4 主流的测试用具 5 自动化测试的流程 6 适用于自动化测试的条件 7 选择自动化测试技术时以语言为主的技术线 主要用到的自动化测试工具是Seleniu
  • ​兔子快跑/rabbit-UI和接口自动化测试平台​

    Rabbit 是一个开源的自动化测试平台 基于经典技术组合 Spring Boot Spring Security MyBatis Jwt Vue 目前版本已支持UI自动化和接口自动化 平台采用关键字驱动 测试人员无需任何代码基础 即可轻松
  • ubuntu18.04解决因没有集成显卡驱动进不去界面问题

    1 问题及设备描述 设备 工控机 ubuntu18 04 i9cpu 集成显卡 问题 更化软件源时不小心将微软Microsoft等的源给删除了 没有备份 查资料发现集显就在主板上 与cpu有很大关系 于是觉得问题在于将集成显卡驱动软件的源给
  • 【计算机网络】——I/O复用之poll

    文章目录 1 poll的概述 2 poll函数的功能和作用 3 poll的特点 4 代码实现I O复用poll 1 poll的概述 在上一篇文章中 我们详细的介绍了I O复用技术中的select使用 这篇文章我们来主要介绍一下poll po
  • node初识

    一 什么是node node官网 https nodejs cn Node js是一个开源的 跨平台的JavaScript运行环境 它基于Chrome V8 JavaScript引擎 使得JavaScript可以在服务器端运行 Node j