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

news2025/1/11 18:41:35

文章目录

    • 一、Node.js 安装配置
    • 二、nvm介绍及使用(推荐使用node版本管理工具)
      • 1、介绍
      • 2、安装
      • 3、基本使用安装/管理nodejs
      • 4、命令提示
    • 三、第一个Node.js程序:Hello World!
        • 脚本模式
        • 交互模式

一、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 服务器监听的端口号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据为基 成峰化海 | GBASE南大通用openGauss Developer Day 2023精彩看点一览

5月26日&#xff0c;面向数据库开发者的年度技术盛会 「openGauss Developer Day 2023」 在北京圆满召开。本届大会以“聚数成峰&#xff0c;共赢未来”为主题&#xff0c;汇集产学研用各层面技术专家、企业领军&#xff0c;分享openGauss社区前沿技术创新、优秀实践和生态成…

今天穿什么香?小红书气味人群和热门趋势分析

“高倍速增长”&#xff0c;近年嗅觉赛道趋势有目共睹&#xff0c;可谓当下一大新势力。 “小众香”、“伪体香”、“人间扳手香”等&#xff0c;频现小红书热门词条&#xff0c;行业巨头入局、诸多新秀崛起&#xff0c;前景美丽。本期千瓜将通过气味人群和热门趋势分析&#x…

nginx限流熔断

一、令牌桶算法 算法思想是&#xff1a; 令牌以固定速率产生&#xff0c;并缓存到令牌桶中&#xff1b; 令牌桶放满时&#xff0c;多余的令牌被丢弃&#xff1b; 请求要消耗等比例的令牌才能被处理&#xff1b; 令牌不够时&#xff0c;请求被缓存。 二、漏桶算法 算法思想…

fengmap地图上小图标缺失

目录 一、问题 二、原因 三、总结 一、问题 1.使用蜂鸟地图&#xff0c;发现在线地图能够正常加载地图编辑器中绘制的小图标&#xff1b;但是离线地图中的小图标却无法正常显示。如下图1-1所示。 二、原因 1.不明白呀,network检查了&#xff0c;离线和在线加载的资源也是一…

使用docker部署多个nginx站点并配置负载均衡

项目前端部署在docker。该前端有时会出现无法访问&#xff0c;重启docker容器后又可以。猜测是不是单个docker容器压力过大&#xff0c;就想引入负载均衡试试效果。 一、负载均衡的好处 负载均衡跟集群结合效果才好&#xff0c;docker容器分布于不同的服务器。但我们没有这个…

Vue.js 中的 Vuex 是什么?如何使用 Vuex?

Vue.js 中的 Vuex 是什么&#xff1f;如何使用 Vuex&#xff1f; 在 Vue.js 中&#xff0c;Vuex 是一种状态管理模式。它可以帮助我们在应用程序中管理共享状态&#xff0c;使得我们的代码更加可维护和可扩展。本文将深入探讨 Vuex 的概念和使用方法&#xff0c;并提供一些相关…

基于DAC0832的信号发生器设计与实现(源码+原理图+PCB)

摘要&#xff1a; 本课题设计了一个基于DAC0832的信号发生器&#xff0c;使之输出不同频率的正弦波、三角波、锯齿波和方波&#xff0c;并通过按键切换不同的波形&#xff0c;也可以改变频率以及频率变化的步进。本方案选择了DAC0832作为核心芯片&#xff0c;并与51单片机结合…

nginx系统优化

nginx系统优化 一&#xff1a;隐藏nginx版本号 方法一&#xff1a;修改配置文件 vim /usr/local/nginx/conf/nginx.confnginx -t systemctl restart nginx curl -I http://192.168.52.108方法二&#xff1a;修改源代码 vim /opt/nginx-1.24.0/src/core/nginx.h ##配置文件里…

Redis面试-高频常考30题(面试突击,建议收藏)

1.BigKey问题&#xff0c;多大算big?你如何发现?如何删除?如何处理? 关于bigkey的面试题&#xff0c;已经在博客 Redis7实战加面试题-高阶篇&#xff08;Redis线程与IO多路复用&#xff0c;BigKey&#xff0c;缓存双写&#xff09; 里详细说明 2.手机登录某App&#xff0…

接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例

一、用例设计1 1、接口测试概念 接口测试&#xff1a;测试系统间接口的一种测试&#xff0c;测试的对象主要是接口&#xff0c;主要是测试外部系统与所测系统之间以及内部系统之间的交互点 2、接口测试方法 a、可以通过开发脚本代码进行测试 b、可以通过开源免费的接口调用…

使用HHDBCS的SSH通道登陆数据库

传统远程登录或文件传输方式&#xff0c;例如Telnet、FTP&#xff0c;使用明文传输数据&#xff0c;存在很多的安全隐患。 随着人们对网络安全的重视&#xff0c;SSH协议已经越来越被用户所青睐。 SSH协议通过对网络数据进行加密和验证&#xff0c;在不安全的网络环境中提供了…

Spring Cloud Alibaba 快速上手搭建公司项目(三)GateWay

Gateway是Spring Cloud生态系统中的一个组件&#xff0c;它是一个基于Spring Cloud Gateway的API网关。它提供了一种简单、快速和可扩展的方式来管理微服务之间的请求流量。 它是一个轻量级的API网关&#xff0c;它可以轻松地与Spring Cloud集成&#xff0c;并提供了一些高级功…

你是外包,麻烦不要偷吃零食,注意素质..

我自己没经历过外包&#xff0c;靠自己的所见所闻可能写出来的东西会很主观&#xff0c;所幸我有不少外包的读者&#xff0c;还有几个在外包工作或工作过的朋友&#xff0c;在跟她们深度交流之后&#xff0c;这这里聊一下我自己的一些看法。 注&#xff1a;本文不代表所有外包公…

libtorch教程(一)开发环境搭建:VS+libtorch和Qt+libtorch

前言 事实上&#xff0c;在前面的pytorch部署博客和libtorch的QT部署中笔者已经分享了自己搭建libtorch开发环境的记录。其余并无太多要赘述的。 本教程禁止转载。同时&#xff0c;本教程来自知识星球【CV技术指南】更多技术教程&#xff0c;可加入星球学习。 Transformer、目…

苹果CMS仿T5资源站影视资源分享网站模板

简介&#xff1a; 苹果cms仿T5资源站影视资源分享网站模板&#xff0c;包括首页、详情页、留言页、和播放弹窗&#xff01;适合拿去做资源站&#xff01; 云盘地址&#xff1a; http://zijieyunpan.cn/eF3crCQyWVO 演示&#xff1a;

Android Input子系统 - PhoneWindowManager

基本概念 PhoneWindowManager也是运行于systemserver线程中,在Event事件分发之前处理,比如电源键。Event事件分发后,仅有包含Activity的apk线程才可以处理,如果apk中没有activity但是想处理Event事件怎么办呢?可以在PhoneWindowManager做做文章了。 在SystemServer中, inputM…

数影周报:免费VPN泄露3.6亿条数据,句子互动获数百万美融资

本周看点&#xff1a;免费VPN泄露3.6亿条用户数据&#xff1b;推特信任与安全主管宣布辞职&#xff1b;宣亚国际宣布推出OrangeGPT&#xff1b;亚马逊日本将在关东地区开设两个新物流中心&#xff1b;句子互动完成数百万美元Pre-A轮融资...... 数据安全那些事 免费VPN泄露3.6亿…

黑客松必备|Bear Necessities Hackathon赞助商Workshop汇总

由Moonbeam和AWS Startups联合主办的Bear Necessities Hackathon黑客松启动仪式于5月30日举行。本次黑客松将历时约1个月的时间&#xff0c;包含6个挑战&#xff0c;分别由Moonbeam基金会、Chainlink、StellaSwap、SubQuery、Biconomy提供赞助&#xff0c;总奖池超过5万美金。了…

requests做接口测试

Requests 是用Python语言编写&#xff0c;基于 urllib&#xff0c;采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便&#xff0c;可以节约我们大量的工作&#xff0c;完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的&#xff0c;所以它…

【linux 脚本篇】流程控制语句-case

目录 &#x1f341;案例一&#xff1a;菜单选项 &#x1f342;if语句执行 &#x1f342;case语句执行 &#x1f341;案例二&#xff1a;rsync服务脚本 &#x1f342;if语句执行 &#x1f342;case语句执行 &#x1f341;案例三&#xff1a;nginx服务脚本 &#x1f341;案例四&a…