WEB前端09-前端服务器搭建(Node.js/nvm/npm)
前端服务器的搭建
在本文中,我们将介绍如何安装和配置 nvm(Node Version Manager)以方便切换不同版本的 Node.js,以及如何设置 npm(Node Package Manager)使用国内镜像,并搭建一个简单的前端服务器。
1.Node.js简介
什么是 Node.js?
Node.js 是一个基于 Chrome V8 引擎构建的 JavaScript 运行时,允许开发者在服务器端运行 JavaScript 代码。特别适用于需要处理大量并发连接的应用程序。与传统的服务器端技术不同,Node.js 使用事件驱动的非阻塞 I/O 模型,这使得它非常轻量和高效。
为什么学习Node.js?
实时应用: Node.js 非常适合构建实时应用,如聊天程序、在线游戏和协作工具。它的事件驱动模型可以高效地处理大量并发连接,确保实时性。
API 服务器: 由于 Node.js 的高性能和非阻塞 I/O 特性,它是构建 RESTful API 和 GraphQL 服务器的理想选择。Node.js 可以处理大量并发请求,确保 API 的响应速度。
单页应用(SPA): 通过与前端框架(如 React、Vue 和 Angular)结合,Node.js 可以用于构建单页应用的后端服务,提供数据接口和认证服务。
微服务架构: Node.js 非常适合实现微服务架构。开发者可以将应用程序拆分为多个小型服务,每个服务专注于特定功能,使用轻量级通信协议进行交互。
如何开始使用 Node.js
-
安装 Node.js: 访问 Node.js 官网 下载并安装最新的稳定版本。安装完成后,可以通过以下命令检查版本:
node -v npm -v
-
初始化项目: 使用 NPM 初始化一个新项目:
mkdir my-node-app cd my-node-app npm init -y
这将生成一个
package.json
文件,用于管理项目依赖和配置信息。 -
安装依赖: 例如,安装 Express 框架以快速搭建 Web 服务器:
npm install express
-
编写代码: 创建一个简单的服务器文件
app.js
:const express = require('express'); const app = express();app.get('/', (req, res) => {res.send('Hello, Node.js!'); });app.listen(3000, () => {console.log('Server is running on http://localhost:3000'); });
-
运行服务器:
node app.js
打开浏览器访问
http://localhost:3000
,你将看到 “Hello, Node.js!” 的欢迎信息。
2. 掌握 nvm
Node.js 是现代 Web 开发中的重要工具之一,然而随着项目需求的变化,不同项目可能需要使用不同版本的 Node.js。这时,Node 版本管理器(nvm)就显得尤为重要。nvm 允许我们在同一台机器上轻松地安装、切换和管理多个版本的 Node.js。本篇博客将介绍 nvm 的安装、配置和使用方法。
- 什么是 nvm?
nvm,全称 Node Version Manager,是一个用于管理多个 Node.js 版本的命令行工具。它使开发者能够在不同项目间灵活切换 Node.js 版本,确保项目的兼容性和稳定性。
- 安装nvm
1. **卸载现有的 Node.js**:在安装 nvm 之前,需要先卸载掉系统中现有的 Node.js。
2. **选择目录时避免空格**:在安装 nvm 和 Node.js 时,选择的目录中一定不要出现空格。
3. **以管理员身份运行命令提示符**:执行 nvm 命令时,建议使用【以管理员身份运行】的 cmd 程序。
4. **设置国内镜像地址**:为了加快下载速度,建议首次运行前设置好国内镜像地址:
//nvm node_mirror http://npm.taobao.org/mirrors/node/
//nvm npm_mirror https://npm.taobao.org/mirrors/npm/
查看可用的 Node.js 版本:
nvm list available
建议安装 LTS(长期支持版):
nvm install 版本号
安装后,可以通过 nvm list
查看已安装的版本,并进行版本切换:
nvm use 版本号
安装后,nvm 会自动添加环境变量,但可能需要手工添加 Node.js 的 PATH 环境变量。
3. 检查 npm
npm 是 JavaScript 的包管理器,类似于 Java 世界的 Maven。为了确保 npm 使用国内镜像,可以进行如下设置:
检查当前镜像:
npm get registry
如果返回的不是 https://registry.npm.taobao.org/
,需要进行设置:
npm config set registry https://registry.npm.taobao.org/
解决 npm 安装包时的 CERT_HAS_EXPIRED 错误
在安装 npm 包时遇到 CERT_HAS_EXPIRED
错误,通常是由于证书过期或网络问题。可以通过以下几种方法来解决:
- 1. 更新 npm
首先,尝试更新 npm 版本:
npm install -g npm
- 2. 更改 npm 的 registry 源
可以尝试将 npm 的 registry 源更改为官方源或其他可用的镜像源:
-
设置 npm 使用官方源:
npm config set registry https://registry.npmjs.org/
-
或者使用其他镜像源,例如腾讯的镜像源:
npm config set registry https://mirrors.cloud.tencent.com/npm/
4. 搭建前端服务器
接下来,我们将使用 npm 和 express 搭建一个简单的前端服务器。
-
新建一个保存项目的文件夹,进入文件夹并执行以下命令:
npm install express --save-dev//Express 是一个轻量级且灵活的 Node.js Web 应用框架,提供了丰富的功能用于构建单页、多页和混合 Web 应用。它基于 Connect 中间件架构,允许开发人员在请求处理链中插入各种中间件,从而实现复杂的功能。
-
修改
package.json
文件:{"type": "module","devDependencies": {"express": "^4.19.2"} }
- 其中
devDependencies
是通过npm install --save-dev
添加的依赖。(相当于pom.xml)
- 其中
-
编写
main.js
代码:import express from 'express' const app = express()app.use(express.static('./')) app.listen(7070)
//解释 import express from 'express': 这行代码使用ES6的模块导入语法,从Node.js的Express框架中导入express模块。const app = express(): 这行代码创建了一个Express应用程序实例,将其赋值给变量app。Express是一个流行的Node.js Web应用程序框架,用于简化构建Web应用程序和API。app.use(express.static('./')): 这行代码设置Express应用程序使用内置的express.static中间件。该中间件用于提供静态文件,比如HTML、图像、样式表和客户端JavaScript文件,而不需要通过路由来处理。'./'表示将当前目录作为静态资源目录,即Web服务器根目录。app.listen(3000): 这行代码启动Express应用程序监听3000端口上的HTTP请求。当运行该代码后,Express将开始监听来自3000端口的所有HTTP请求,并将其分配给相应的路由或静态文件处理。
-
运行前端服务器:
node main.js
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/7100aa42f19bd972ec00ba2cad370a60.png)
WEB前端09-前端服务器搭建(Node.js/nvm/npm)
前端服务器的搭建 在本文中,我们将介绍如何安装和配置 nvm(Node Version Manager)以方便切换不同版本的 Node.js,以及如何设置 npm(Node Package Manager)使用国内镜像,并搭建一个简单的前端服…...
![](https://www.ngui.cc/images/no-images.jpg)
ASP.NET Core在启动过程中使用数据库实例的几种方式
ASP.NET Core项目启动过程中若要调用SqlSugarClient实例操作数据库数据(假设操作函数如下),特此记录以下几种方式: public class PublicDataBuffer {public static List<EnvironmentRecord> DataBuffer new List<Envir…...
![](https://i-blog.csdnimg.cn/direct/2c962b73ebef434b82ee78ed8315cc63.png)
AndroidStudio 编辑xml布局文件卡死问题解决
之前项目编写的都是正常,升级AndroidStudio后编辑布局文件就卡死,还以为是AndroidStudio文件。 其实不然,我给整个项目增加了版权声明。所以全部跟新后,布局文件也增加了版权声明。估计AndroidStudio在 解析布局文件时候因为有版…...
![](https://i-blog.csdnimg.cn/direct/3436d67ffe884af9b6615180bfe0ba67.png)
使用 PVE 自签 CA 证书签发新证书
前言 PVE 安装时会自动创建一个有效期 10 年的 CA 证书, 我们可以利用这个 CA 证书给虚拟机中的 Web 应用签发新的 TLS 证书用于提供 HTTPS 服务. 下面以 PVE 虚拟机中通过 Docker 跑的一个 雷池 应用为例进行演示. PVE 证书位置 官方文档: https://pve.proxmox.com/wiki/Pr…...
![](https://www.ngui.cc/images/no-images.jpg)
ubuntu 22.04安装Eigen
1 安装 git clone https://gitlab.com/libeigen/eigen.gitcd eigen mkdir build cd build cmake ..sudo make install... -- Installing: /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry -- Installing: /usr/local/include/eigen3/unsupported/Eige…...
![](https://i-blog.csdnimg.cn/direct/3da2fe9761ee414c94d2dbdaeabb7cf5.png)
vue使用audio 音频实现播放与关闭(可用于收到消息给提示音效)
这次项目中因为对接了即时通讯 IM,有个需求就是收到消息需要有个提示音效,所以这里就想到了用HTML5 提供的Audio 标签,用起来也是很方便,首先让产品给你个提示音效,然后你放在项目中,使用Audio 标签&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
STM32 产生Hard Fault 调试方法
STM32 产生hard-fault 调试方法 需求 当STM32 产生Hard Fault的时候我们希望可以打印出一些重要的寄存器信息,然后定位代码出错的地方。 参考 https://github.com/ferenc-nemeth/arm-hard-fault-handler 原理 STM32代码运行的时候一般在是main函数while(1)中循…...
![](https://i-blog.csdnimg.cn/direct/47804bdf6a7d43e6876b5f9d618d4971.png)
java-selenium 截取界面验证码图片并对图片文本进行识别
参考链接 1、需要下载Tesseract工具并配置环境变量,步骤如下 Tesseract-OCR 下载安装和使用_tesseract-ocr下载-CSDN博客 2、需要在IDEA中导入tess4j 包;在pom.xml文件中输入如下内容 <!--导入Tesseract 用于识别验证码--><dependency>&l…...
![](https://i-blog.csdnimg.cn/direct/2d47b364e7d94c6f82cc59a8ba10a8ff.png)
【Linux】进程信号 --- 信号产生
👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…...
![](https://www.ngui.cc/images/no-images.jpg)
Docker 容器中的 Docker Compose 简介
Docker Compose是什么 Docker Compose是一个用于定义和运行多个Docker容器的工具。它是Docker官方提供的开源项目,用于实现对Docker容器集群的快速编排。通过Compose,开发者可以使用YAML文件(通常是docker-compose.yml文件)来配置…...
![](https://www.ngui.cc/images/no-images.jpg)
手机日历如何与Outlook同步
有很多人和我一样遇到手机日历与Outlook同步问题,如新版outlook与小米日历的同步问题 - Microsoft Community,outlook账号无法在手机端自带的电子邮件App以exchange模式登录 - Microsoft Community,在安卓手机端无法电子邮件App以exchange模式…...
![](https://img-blog.csdnimg.cn/direct/709ae3d152dd4f018891cb4af1597b96.png)
python基础语法 007 文件操作-1读取写入
1 文件操作 1.1 什么时候用文件操作? 打开文档写东西看东西拿文档做统计 在python 文档操作作用 存储数据读取数据 打开文件有什么用? 读取数据,写入数据不管什么数据都可以用open打开,如可复制一张图片 1.2 open() 读取,…...
![](https://i-blog.csdnimg.cn/direct/7dfd3330aec14e1fb1914ce56c295a98.webp)
C语言·函数(超详细系列·全面总结)
前言:Hello大家好😘,我是心跳sy,为了更好地形成一个学习c语言的体系,最近将会更新关于c语言语法基础的知识,今天更新一下函数的知识点,我们一起来看看吧! 目录 一、函数是什么 &a…...
![](https://i-blog.csdnimg.cn/direct/797afba09cf744b8a9f16d3e046d26a3.png)
Windows及Linux系统加固
君衍. 一、Windows加固1、配置简介2、账户配置3、本地配置4、安全设置 二、Linux加固1、配置简介2、网络配置3、日志和审计配置4、访问认证和授权配置5、系统运维配置 一、Windows加固 1、配置简介 通常在Windows安全配置中有两类对象 一类是Windows Server,如win …...
![](https://i-blog.csdnimg.cn/direct/585df72f29d44623b3bdbc5c3385251b.png)
Postman安装使用教程(详解)
目录 一、Postman是什么 二、安装系统要求 三、下载Postman 四、注册和登录Postman 五、创建工作空间 六、创建请求 一、Postman是什么 在安装之前,让我们先来简单了解一下Postman。Postman是一个流行的API开发工具,它提供了友好的用户界面用于发送…...
![](https://i-blog.csdnimg.cn/direct/2b45ca99b39549ed9716e7d209539e45.png)
【嵌入式开发之标准I/O】文件I/O的基本概念,打开、关闭、定位函数及实例
文件I/O和标准I/O 什么是文件I/O?什么是标准I/O? 文件I/O:文件I/O又称系统IO,系统调用,称之为不带缓存的IO(unbuffered I/O)。是操作系统提供的API接口函数。不带缓存指的是每个read,write都调用内核中的一个系统调…...
![](https://www.ngui.cc/images/no-images.jpg)
C++文件操作-文本文件-读文件
第一种 #include<iostream>//1、包含头文件 fstream #include<fstream> using namespace std;void test01() {//2、创建流对象ifstream ifs;//3、打开文件 并且判断是否打开成功ifs.open("test.txt", ios::in);if (!ifs.is_open()){cout << "…...
![](https://img-blog.csdnimg.cn/direct/7f06907c3c4b4c2a8800bace1e511bb8.gif#pic_center)
二叉树精选面试题
💎 欢迎大家互三:2的n次方_ 1. 相同的树 100. 相同的树 同时遍历两棵树 判断结构相同:也就是在遍历的过程中,如果有一个节点为null,另一棵树的节点不为null,那么结构就不相同 判断值相同:只需…...
![](https://img-blog.csdnimg.cn/img_convert/2a735ca5e0a04a3aca1a725fac41056d.jpeg)
如何在 Android 中删除和恢复照片
对于智能手机用户来说,相机几乎已经成为一种条件反射:你看到值得注意的东西,就拍下来,然后永远保留这段记忆。但如果那张照片不值得永远保留怎么办?众所周知,纸质快照拿在手里很难舍弃,而 Andro…...
![](https://www.ngui.cc/images/no-images.jpg)
HarmonyOS Next原生应用开发-从TS到ArkTS的适配规则(六)
一、仅支持一个静态块 规则:arkts-no-multiple-static-blocks 级别:错误 ArkTS不允许类中有多个静态块,如果存在多个静态块语句,请合并到一个静态块中。 TypeScript class C {static s: stringstatic {C.s aa}static {C.s C.s …...
![](https://i-blog.csdnimg.cn/direct/1af6cb722b61430abea7e6f85272a788.png)
功能测试与APPSCAN自动化测试结合的提高效率测试策略
背景 手工探索性测试(Manual Exploratory Testing,简称MET)是一种软件测试方法,它依赖于测试人员的直觉、经验和即兴发挥来探索应用程序或系统。与传统的脚本化测试相比,手工探索性测试不遵循固定的测试脚本࿰…...
![](https://i-blog.csdnimg.cn/direct/626c34a7106f4bbb99c434373a1ab2e6.png)
AVL树的理解和实现[C++]
文章目录 AVL树AVL树的规则或原理 AVL树的实现1.节点的定义2.功能和接口等的实现默认构造函数,析构函数拷贝构造函数插入搜索打印函数检查是否为平衡树,检查平衡因子旋转 AVL树 AVL树,全称Adelson-Velsky和Landis树,是一种自平衡…...
![](https://www.ngui.cc/images/no-images.jpg)
云计算遭遇的主要安全威胁
以下是详细说明云计算遭遇的所有主要安全威胁: 1. 数据泄露 描述:数据泄露是指未经授权的情况下访问和获取敏感数据。云计算环境中的数据泄露通常由于不安全的配置、软件漏洞或内部威胁造成。 案例: Capital One数据泄露:2019…...
![](https://i-blog.csdnimg.cn/direct/4a7e96cd8fb34e92ae4184d7f333b0ef.png)
[MySQL]02 存储引擎与索引,锁机制,SQL优化
Mysql存储引擎 可插拔式存储引擎 索引是在存储引擎底层上实现的 inno DB MySQL默认存储引擎: inno DB高可靠性和高性能的存储引擎 DML操作遵循ACID模型支持事务行级锁,提高并发访问性能支持外键 约束,保证数据完整性和可靠性 MySAM MySAM是MySQL的早期引擎 特点: 不支持事…...
![](https://www.ngui.cc/images/no-images.jpg)
ld,GNU 链接器介绍以及命令行参数详解
ld,GNU 链接器介绍以及命令行参数详解 当我们使用GCC编译源代码生成可执行程序,经过预处理、汇编、编译、链接四个阶段。 链接器(Linker)将多个目标文件和库文件链接起来,链接器还解决目标文件之间的符号引用ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
[web]-反序列化-base64
看到源码 <?php error_reporting(0); class A {public $contents "hello ctfer";function __toString(){if ((preg_match(/^[a-z]/i,$this->contents))) {system("echo $this->contents");return 111;}else{return "...";}} }functi…...
![](https://img-blog.csdnimg.cn/img_convert/7096e1f106be2e9f0579fb01660e0b58.jpeg)
【医学影像】RK3588+FPGA:满足远程诊疗系统8K音视频编解码及高效传输需求
医学影像 提供基于Intel平台、NXP平台、Rockchip平台的核心板、Mini-ITX主板、PICO-ITX主板以及工业整机等计算机硬件。产品板载内存,集成超高清编码/解码视频引擎,具有出色的数据处理能力和图形处理能力,功能高集成,可应用于超声…...
![](https://i-blog.csdnimg.cn/direct/69ee77b869574935b86a2a30dd41563a.png#pic_center)
昇思25天学习打卡营第16天|基于MindSpore通过GPT实现情感分类
文章目录 昇思MindSpore应用实践1、基于MindSpore通过GPT实现情感分类GPT 模型(Generative Pre-Training)简介imdb影评数据集情感分类 2、Tokenizer导入预训练好的GPT3、基于预训练的GPT微调实现情感分类 Reference 昇思MindSpore应用实践 本系列文章主…...
![](https://i-blog.csdnimg.cn/direct/4597a4f18f464522881e20cea6457130.png)
服务器借助笔记本热点WIFI上网
一、同一局域网环境 1、当前环境,已有交换机组网环境,服务器已配置IP信息。 设备ip服务器125.10.100.12交换机125.10.100.0/24笔记本125.10.100.39 2、拓扑图 #mermaid-svg-D4moqMym9i0eeRBm {font-family:"trebuchet ms",verdana,arial,sa…...
![](https://www.ngui.cc/images/no-images.jpg)
开发实战中Git的常用操作
Git基础操作 1.初始化仓库 git init解释:在当前目录中初始化一个新的Git仓库。 2.克隆远程仓库 git clone <repository-url>解释:从远程仓库克隆一个完整的Git仓库到本地。 3.检查当前状态 git status解释:查看当前工作目录的状态…...
![](/images/no-images.jpg)
可以做网站首页的图片素材/cpu游戏优化加速软件
RSA加密:RSA密码体制是一种公钥密码体制,加密算法公开,以分配的密钥作为加密解密的关键。一般来说,在一对公私钥中,公钥和私钥都可以用来加密和解密,即公钥加密能且只能被对应的私钥进行解密,私…...
![](/images/no-images.jpg)
公众号如何做网站/搜索引擎培训班
两条斜线 链接:https://ac.nowcoder.com/acm/problem/18951 题目描述 平面上有n个点,现在你需要建造两条路,一条是斜率为1, 另一条斜率为-1 你的任务是让这两条路经过尽可能多的点 求最多经过几个点 输入描述: 第一行输入一个整数N表示点的个数 第二行…...
![](/images/no-images.jpg)
网站建设丨找王科杰效果好/无锡网站建设公司
https://stackoverflow.com/questions/23943356/asp-net-how-to-send-data-with-post-method...
![](/images/no-images.jpg)
做垂直平台网站/公司企业网站建设
今天我在设置cookie的时候,发现cookie的值获取有问题 问题代码 //创建cookie,将当前的时间作为cookie的值发送给客户端String currentTimenew SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());Cookie cookienew Cookie("lastAccess&quo…...
![](https://img-blog.csdnimg.cn/bf87123628e64f27927bfb5379015d73.png)
免费域名注册工具/上海网站排名seo公司
经济学中有个著名的结论,贸易可以让贸易双方都获益,这里我们用一个例子来说明,为什么是这样的。 分析如下: 馒头对于甲的价值: 0.5瓶啤酒=1个馒头 馒头对于乙的价值: 6瓶啤酒=&…...
![](https://img-blog.csdnimg.cn/img_convert/1683807e62c9ded4dc1a1445b1dffbaa.png)
杭州网站提升排名/软文街官方网站
人们日常熟知的邮政业务包括邮务业务、快递业务、银行业务、保险业务、证券业务、网上商城等,除此之外,还有一项非常重要——电商业务。区别于人们熟知的电商网购,邮政公司电商业务主要是指人们日常生活中的代收费业务(包括水、电…...