Node.js详解(三):Node.js的安装及基本使用

2023-11-16

一、Node.js 安装配置

Node.js支持在 Windows 、Linux以及在Mac 上安装使用

安装非常简单,无复杂操作;就不多做赘述,挂个连接参考:https://www.runoob.com/nodejs/nodejs-install-setup.html

安装完成,我们可以使用以下命令来查看当前的 Node 版本:

$ node -v
v18.16.0
注意:不同版本间可能是有差异的。

二、nvm介绍及使用(推荐使用node版本管理工具)

1、介绍

nvm全名node.js version management,顾名思义是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。
为了解决node各种版本存在不兼容现象。
nvm是让你在同一台机器上安装和切换不同版本的node的工具。
我们可能同时在进行2个项目,而2个不同的项目所使用的node版本又是不一样的,或者是要用更新的node版本进行试验和学习。这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,而nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换,而这个正是nvm的价值所在,详情可以查看官网NVM官网。
官网地址: https://github.com/nvm-sh/nvm

2、安装

两种方式

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

此时nvm就被安装在了/.nvm下啦
验证是否安装成功
打开命令行,执行nvm -v命令后,出现提示说明安装成功。

3、基本使用安装/管理nodejs

##1、查看本地安装的所有版本;有可选参数available,显示所有可下载的版本。
nvm list [available]
nvm ls
##2、安装,命令中的版本号可自定义,具体参考命令1查询出来的列表
nvm install 11.13.0
##3、使用特定版本,切换node的版本,这个是全局的
nvm use 11.13.0
##4、卸载
nvm uninstall 11.13.0
##列出所有可以安装的node版本号
nvm ls-remote
##当前node版本
nvm current

4、命令提示

nvm arch :显示node是运行在32位还是64位。
nvm install <version> [arch] :安装node, version是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加--insecure绕过远程服务器的SSL。
nvm list [available] :显示已安装的列表。可选参数available,显示可安装的所有版本。list可简化为ls。
nvm on :开启node.js版本管理。
nvm off :关闭node.js版本管理。
nvm proxy [url] :设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理。
nvm node_mirror [url] :设置node镜像。默认是https://nodejs.org/dist/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
nvm npm_mirror [url] :设置npm镜像。https://github.com/npm/cli/archive/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
nvm uninstall <version> :卸载指定版本node。
nvm use [version] [arch] :使用制定版本node。可指定32/64位。
nvm root [path] :设置存储不同版本node的目录。如果未设置,默认使用当前目录。
nvm version :显示nvm版本。version可简化为v。

请添加图片描述

三、第一个Node.js程序:Hello World!

脚本模式

以下是我们的第一个Node.js程序:

实例

console.log(“Hello World”);

保存该文件,文件名为 helloworld.js, 并通过 node命令来执行:

node helloworld.js

程序执行后,正常的话,就会在终端输出 Hello World。

交互模式

打开终端,键入node进入命令交互模式,可以输入一条代码语句后立即执行并显示结果,例如:

$ node
> console.log('Hello World!');
Hello World!

Node.js 创建第一个应用
​ 如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器,并配上 mod_php5 模块和 php-cgi。

从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求就不需要 PHP 来处理。

不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。

在我们创建 Node.js 第一个 “Hello, World!” 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的:

  1. 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
  2. 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
  3. 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

创建 Node.js 应用

步骤一、引入 required 模块
我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下:

var http = require("http");

步骤二、创建服务器
接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。

实例如下,在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:

var http = require('http');

http.createServer(function (request, response) {

    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 发送响应数据 "Hello World"
    response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

以上代码我们完成了一个可以工作的 HTTP 服务器。

使用 node 命令执行以上的代码:

node server.js
Server running at http://127.0.0.1:8888/

img

接下来,打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 "Hello World"的网页。

img

分析Node.js 的 HTTP 服务器:

第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。
接下来我们调用 http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。

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

Node.js详解(三):Node.js的安装及基本使用 的相关文章

  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 对于实时网站使用 Node.js 或 Ringojs 安全吗?

    正如标题中所述 我想知道使用实际的 omg 平台 即 Node js 和 Ringo js 的实际版本 之一来开发网站是否安全 另外 我想知道他们是否支持cookie sessions以及他们如何处理多字段帖子 PHP中的fieldname
  • Node.js http get 请求错误事件未拾取 404 或 403

    我正在对图像发出 HTTP GET 请求 有时图像会以 404 或 403 的形式返回 令我惊讶的是 我必须明确检查这一点 而不是在错误事件中选择它 这是它的工作原理还是我在这里遗漏了一些东西 function processRequest
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • 如何使用 sinon/mocha 模拟 npm 模块

    我正在尝试测试调用该模块的函数cors 我想测试一下cors会被称为 为此 我必须存根 模拟它 这是函数 cors js const cors require cors const setCors gt cors origin http l
  • npmjs.org - 找不到自述文件

    我是 npm 包的主要作者scramjet 一个月以来 我遇到了关于可视性的问题README md在 npmjs 中 The npm 中的超燃冲压发动机包 https www npmjs com package scramjet shows
  • 如何在Electron WebView中连接到代理?

    因为我可以通过连接到免费代理服务器 或付费 目前用作电子 JS 解决方案作为桌面应用程序 代理列表服务器示例 http proxylist hidemyass com http proxylist hidemyass com 您可以使用 s
  • 如何解决 Socket.io 404(未找到)错误?

    我正在使用 Socket io 和 Express 在我的项目中 我有一个登录页面和一个主页 当我成功登录时 我导航到 localhost 3000 home 并收到以下错误 GET http localhost 3000 socket i
  • 如何设置上传的文件名?

    By using multer I made it to request image file like this 这个文件存储在我设置的 上传 文件夹中 我的代码如下 var multer require multer var uploa
  • 缺少节点-v59-linux-x64/grpc_node.node

    我正在尝试在我的服务器中使用 Firebase admin SDK 当我部署时 出现错误 我在 firebase admin node module 映射中缺少文件 node v59 linux x64 grpc node node 我在包
  • 如何在 Sequelize ORM 中限制连接行(多对多关联)?

    Sequelize 定义了两种模型 具有多对多关联的 Post 和 Tag Post belongsToMany db Tag through post tag foreignKey post id timestamps false Tag
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • Angular-cli AOT 构建失败,并显示“致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足”

    我正在尝试使用 AOT 构建我的 angular cli 项目 ng build aot 但它因错误而失败 致命错误 CALL AND RETRY LAST 分配失败 JavaScript 堆内存不足 如果我用 prod flag 任何想法
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样
  • NodeJS hmac 摘要问题与重音

    我正在对以下代码与 Ruby PHP 和 NodeJS 进行并排比较 使用 NodeJS 得到错误的响应crypto module PHP hash hmac sha256 text Ruby OpenSSL HMAC hexdigest
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • 根据特定字符获取整个字符串或子字符串

    我有一个包含 MIME 类型的字符串 例如application json 现在我想将其与实际的 HTTP 标头进行比较 在本例中content type 如果标头包含 MIME 类型 那么就很简单 if mimeType contentT
  • 如何在超级测试中模拟中间件?

    我想测试中间件是否在app js叫做 虽然我嘲笑该模块work js 它仍然运行原始代码 app js const work require work const express require require const app expr
  • Node.js 和 Passport 对象没有 validPassword 方法

    我正在使用 Node js Express Passport 创建一个简单的身份验证 本地 到目前为止我所达到的效果是 当输入错误的用户名或密码时 用户将被重定向到错误页面 但是当用户输入正确的用户名和密码时 我收到此错误 node mod

随机推荐

  • 验证性实验

    验证性实验 验证性实验 ipconfig 实作一 实作二 ping 实作一 实作二 tracert 实作一 ARP 实作一 实作二 实作三 DHCP 实作一 netstat 实作一 实作二 DNS 实作一 实作二 实作三 cache 实作一
  • 安装RapidDesign_v1.3.0.Cracked.DX10.3.Rio

    1 下载 https t00y com file tempdir A2NSZVRiXTRSZAZpVGBRLg4 V2IBNw47XTBQMFYzUGVXM1R BTZaNFZkUDRQaFczUmABMAIwDTg 2 解压 D rioc
  • Discuz!X模板代码解析--Header(头文件)

    Discuz X模板代码解析 Header 头文件 header html这个文件存储于common文件下 这个大家应该不陌生吧 我是每个DIV为小节来讲 头部的核心div我就不加if语句来讲解 因为代码太多了 我会在最下面给大家总结一下
  • 【数据分析入门】Seaborn[散点图、条形图、计数图、热力图、箱型图、小提琴图]

    这里写目录标题 一 数据 二 画布外观 2 1 Seaborn样式 2 2 上下文函数 2 3 调色板 三 使用 Seaborn 绘图 3 1 坐标轴栅格 3 2 各类图形 3 2 1 散点图 3 2 2 条形图 3 2 3 计数图 3 2
  • Java编写的公交查询系统 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的教室管理系统 目前系统功能已经很全面 后续会进一步完善 整个系统界面漂亮 有完整得源码 希望大家可以喜欢 喜欢的帮忙点赞和关注 一起编程 一起进步 开发环境 开发语言为Java 开发环境Eclipse或者
  • Android机上跑linux(结果为Termux)

    文章目录 前言 Termux 前言 需求 我只想可以运行自己写的python程序 需要这个系统能有网络地址 能ssh 能连别人 也能别人连自己 能pip安装上合适的包 比如numpy 过程 ipad上搞ish 优点 垃圾IOS闭源生态 就它
  • 春秋云境:CVE-2022-22947

    春秋云境 CVE 2022 22947 文章合集 春秋云境系列靶场记录 合集 Spring Cloud Gateway spel 远程代码执行 CVE 2022 22947 漏洞介绍 Spring Cloud Gateway 远程代码执行漏
  • 永洪科技入选2023 商业智能应用案例TOP10

    8月13日 由DBC联合CIW CIS推出 经过两轮多维度评价 评议 评选 2023 商业智能应用案例TOP10 发布 永洪科技案例入选 电力行业数字化转型 数字化技术渗透至电力产业 发 输 变 配 用 各个环节 电力企业在复杂的产业环境中
  • 解决开发中Win Linux差别(持续更新)

    1 目录分隔符 Winxp Linux 解决办法 采用 File separator web目录 request getSession getServletContext getRealPath 数据库中图片目录用 serverInfo i
  • 【docker】将本地镜像push上传到dockerhub上,再从dockerhub上pull下来到本地,并运行的过程

    使用指示 完成本章操作 你需要有魔法 绿色 备注 红色或高亮 重点 要修改的地方 要注意的地方 注册dockerhub 登录官网 注册一个账号 需要用户名 邮箱 密码 前提是有魔法 不然邮箱会报错 然后在官网直接登录一下 在本地用命令行登录
  • ctfshow-菜狗杯-抽老婆

    任意文件读取 抽老婆 打开首先发现是一个图片下载 老婆们都很不错 感觉也没什么其他的东西 先F12看一下代码 发现有一处标注 感觉跟任意文件下载有关 一开始的错误思路 想着先扫一遍看看能不能发现啥 于是用dirsearch扫了一下 发现了
  • LAMP架构

    LAMP架构介绍 1 1LAMP平台概述 LAMP架构是目前成熟的企业网站应用模式之一 指的是协同工作的一整台系统和相关软件 能够提供动态web站点服务及其应用开发环境 LAMP是一个缩写词 具体包括Linux操作系统 Apache网站服务
  • 佳博 热敏打印机 ESCPOS 指令研究

    Test txt内容 参考打印到文档功能 初识打印机驱动 http www cnblogs com MrDing p 4078189 html 热敏打印头打印原理和C实现黑白位图的放大 https www jianshu com p c75
  • 一般报java.lang.NullPointerException的原因有以下几种

    一般报java lang NullPointerException的原因有以下几种 字符串变量未初始化 接口类型的对象没有用具体的类初始化 比如 List lt 会报错 List lt new ArrayList 则不会报错了 当一个对象的
  • 如何创建与框架无关的JavaScript插件

    本文旨在介绍个人在研读源码的时的一些浅薄理解 希望能对各位有一些帮助 本文将对所有可能遇到的知识点或细节进行注解或链接 跳转 以保证各位读者都能看懂 如果文中有说的不对的或者引导方向不正确的 欢迎各位批评指正 欢迎在评论区交流补充 感谢阅读
  • 【H.264/AVC视频编解码技术详解】八、 熵编码算法(2):H.264中的熵编码基本方法、指数哥伦布编码

    H 264 AVC视频编解码技术详解 视频教程已经在 CSDN学院 上线 视频中详述了H 264的背景 标准协议和实现 并通过一个实战工程的形式对H 264的标准进行解析和实现 欢迎观看 纸上得来终觉浅 绝知此事要躬行 只有自己按照标准文档
  • 关于T5/T5L屏幕触控异常的问题的一些见解

    近段时间在使用迪文屏过程中因为对于迪文产品知识不了解不熟悉 导致在开发或使用的过程中因为操作不当或其他种种原因而导致屏幕触控之后没有反应 触摸偏移或者说按下触控之后屏幕没有相应的动作 在此将近段时间的出现的情况及解决办法总结一下 供其他客户
  • 3.30黄金下跌原因解析;3.31原油及沪金银操作建议

    黄金行情解析 周二黄金价格萎靡不振 持续下行甚至探至1704 56美元 目前正处于1710美元附近苟延残喘 新冠疫苗接种计划复苏 提振投资者转向股票期货价格 避险黄金受到严重挑战 尽管中美地缘政治战从口水战转化成实质的制裁行动 但现时中美两
  • 自制教学用ESP32开发板【ESP32_Py_Board】① 开发环境搭建

    摘要 由于教学需要 自己设计了一款ESP32开发板 用于 短距离无线通信 课堂教学使用 开发板整体效果如下图 该开发板采用Type C接口供电 板载CH340K串口芯片 支持自动下载 240 240全彩SPI接口显示屏 温度传感器DS18B
  • Node.js详解(三):Node.js的安装及基本使用

    文章目录 一 Node js 安装配置 二 nvm介绍及使用 推荐使用node版本管理工具 1 介绍 2 安装 3 基本使用安装 管理nodejs 4 命令提示 三 第一个Node js程序 Hello World 脚本模式 交互模式 一