一、基本概念介绍

Nginx 是一款高性能的 Web 服务器和反向代理服务器,而 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可以让JavaScript 在服务器端运行。npm 则是 Node.js 的默认包管理工具,类似手机的应用市场。主要功能事故案例Node.js项目中的各种依赖包。在实际应用中,通常会使用 Nginx 作为前端代理服务器,将动态请求转发给 Node.js 应用处理。

Nginx安装参考:

WEB基础知识总结+Nginx安装及Server简单实践-CSDN博客

二、安装 Node.js + npm

1、安装软件

# Ubuntu/Debian 系统
sudo apt update
sudo apt install nodejs npm

2、测试验证

node -v
npm -v

三、Node.js 简单实践

1、创建项目目录

mkdir -p /data/node-project
cd /data/node-project/

2、创建文件 server.js

vi server.js
const http = require('http');
// 创建一个 HTTP 服务器
const server = http.createServer((req, res) => {// 设置响应头res.writeHead(200, { 'Content-Type': 'text/plain' });// 发送响应内容res.end('Hello, World!\n');
});// 监听 3000 端口
server.listen(3000, '0.0.0.0', () => {console.log('Server running at http://0.0.0.0:3000/');
});

3、运行代码

node server.js

4、浏览器访问

四、npm 简单实践

1、创建项目目录

mkdir -p /data/npm-project
cd /data/npm-project

2、初始化项目

#交互方式初始化
npm init#非交互方式初始化 -- 使用默认配置快速创建
npm init -y#部分交互选项操作
package name: (npm-project)    #直接Enter
version: (1.0.0)               #直接Enter
description: npm project       #输入描述
entry point: (index.js)        #直接Enter
test command:                  #直接Enter
git repository:                #直接Enter
keywords:                      #直接Enter
author: lkl                    #输入用户名
license: (ISC)                 #直接Enter

npm init会引导你创建一个package.json文件,该文件记录了项目的元数据信息和依赖项信息。

3、项目依赖安装

指定镜像源,加快软件包的安装速度。在当前目录下生产一个隐藏的配置文件。

npm config set registry https://registry.npmmirror.com

安装 express 框架作为项目依赖。

npm install express

express将会安装到项目的node_modules目录下,并在package.json文件中添加相应的依赖项。

查看包依赖

head package-lock.json

4、项目创建

创建入口文件 index.js

vi index.js
const express = require('express');
const app = express();
const port = 3000;// 定义简单的路由
app.get('/', (req, res) => {res.send('站点首页!!!\n');
});
app.get('/login', (req, res) => {res.send('站点登录页面!!!\n');
});
app.get('/register', (req, res) => {res.send('站点注册页面!!!\n');
});// 启动服务器
app.listen(port, () => {console.log(`Server is running on port ${port}`);
});

5、项目启动

可以在package.json文件中添加一个启动脚本

"start": "node index.js"

运行项目

npm start

6、浏览器访问

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 中 SQLAlchemy 和 MySQLdb 的关系

目录1. 角色和定位2. 工作原理和交互方式使用纯 MySQLdb使用 SQLAlchemy(核心或 ORM)3. 依赖关系总结与选择 简单来说,它们的关系是:SQLAlchemy 是一个高层抽象的对象关系映射器(ORM)和 SQL 工具包&#xf…

【CV】OpenCV①——图形处理简介

一、OpenCV简介 1. 图像处理 1.1. 图像起源 1.1.1. 图像是什么1.1.2. 模拟图像和数字图像1.2. 数字图像的表示 1.2.1. 位数1.2.2. 图像分类 二值图像灰度图彩色图

JAVA后端开发——API状态字段设计规范与实践

1. 引言在现代Web应用与API设计中,状态(Status)字段的管理是一个普遍存在且至关重要的议题。状态字段,如订单状态、任务执行状态、模型运行状态等,直接关系到系统的核心业务逻辑。不恰当的设计会导致API可读性差、系统…

【MySQL的卸载】

MySQL的卸载卸载MySQL步骤1:停止MySQL服务步骤2:软件的卸载卸载方式一:通过控制面板卸载软件卸载方式二:通过360或电脑管家等软件卸载卸载方式三:通过安装包提供的卸载功能卸载步骤3:残余文件的清理步骤4&a…

高效实时数据同步方案:秒级响应多字段搜索

目录 1、其他 2、业务背景和目标 2.1 业务目标 2.2 核心痛点 3、技术选型 3.1 实时工具同步选型 3.2 OLAP数据库选型 3.3 候选技术路线对比 3.4 技术难点 3.5 技术选型推荐 3.5.1、推荐的技术路线 3.5.2 架构示意图 4 、可行性验证方案​​ ​​4.1 测试用例设计​ …

面试问题详解七:Qt 信号与槽 + QML 的结合详解

在现代 Qt 开发中,QML(Qt Quick)负责 UI 层,C 负责逻辑层或后端服务层 是一种非常流行的架构方式。 这一模式下,信号与槽机制在 QML 与 C 间的前后端通信中扮演桥梁角色,是实现数据驱动界面更新、事件响应、…

孔夫子旧书网 API 实战:古籍与二手书数据获取及接口调用方案

孔夫子旧书网作为国内知名的古籍、二手书交易平台,其商品数据对于图书收藏、学术研究及二手书电商系统具有重要价值。本文将详细介绍孔夫子平台接口的调用方法,涵盖认证机制、搜索参数配置、数据解析及反爬策略,并提供可直接使用的 Python 代…

文件包含的学习笔记

面试问题 1,任意文件读取,到底读什么文件,有什么危害 权限是www 只能读第一个,读这个没用,密码在/etc/shadow中 其它没有权限 my.cnf mysql密码看不了 但是可以看见日志文件的目录 sql注入时,你有注…

Linux 软件包安装和管理的相关操作及使用总结(未完成)

一、基础知识1、软件包分类源码包(Source Package):包含软件的源代码文件、编译指令和配置文件。需要用户自行编译安装,过程相对复杂,但灵活性高,可以定制安装选项。文件格式通常为.tar.gz、.tar.bz2等压缩…

【开发指南】飞凌i.MX9352核心板开发过程中的常见问题及排查思路

飞凌嵌入式作为NXP金牌合作伙伴,已基于i.MX系列应用处理器推出了多款嵌入式主控产品,除了最新发布的i.MX95xx系列核心板外,同为i.MX9系的i.MX93xx系列核心板也已上市多年并获得了众多客户的认可和选择。在长期的技术支持服务过程中&#xff0…

Windows应急响应一般思路(二)

进程排查 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 无论是在Windows系统还是Linux系统中,主机在感染恶意程序后,恶意程序都会启动相应的进程&am…

FFmpeg03:多媒体文件处理基础

日志系统 #include <libavutil/log.h>av_log_set_level(AV_LOG_DEBUG)av_log(NULL, AV_LOG_INFO, “…%s\n”, op) 常用日志级别 AV_LOG_ERROR AV_LOG_WARNING AV_LOG_INFO Demo log.cpp #include <iostream> extern "C" { #include <libavutil/log.h…

【每天一个知识点】AIOps 与自动化管理

一、AIOps 的内涵AIOps&#xff08;Artificial Intelligence for IT Operations&#xff09;&#xff1a;指将人工智能、大数据分析和机器学习技术应用于 IT 运维管理中。主要目标是&#xff1a;利用智能算法对云平台、网络、应用和日志等海量运维数据进行实时分析&#xff0c;…

ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video

ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video 解决办法 iOS 上对保存到相册的视频存在某种格式和分辨率上的限制&#xff0c;建议先自查看下视频生成的参数&#xff0c;可以先试试苹果自带浏览器 safari 上能否播放该视频。 如果不能播放&#xff0c;证明 io…

Vue基础(③父子组件)

房子&#xff08;父组件&#xff09;包含窗户和门&#xff08;子组件&#xff09; 窗户和门&#xff08;子组件&#xff09;是房子&#xff08;父组件&#xff09;的一部分父组件<!-- 父组件&#xff1a;比如叫 Home.vue --> <template><div><h1>这是父…

AI领域的语义空间是什么?

写在前面&#xff1a;本文将从简单的二维空间来逐渐展开问题&#xff0c;带您理解语义空间。距离和体型&#xff1a;这里尝试用距离和体型这两个尺度来理解语义空间&#xff0c;先说的是低维情况&#xff0c;后面在尝试理解高维的情况。比如&#xff0c;在二维空间的x,y坐标系&…

排序---插入排序

基本思想对于插入排序而言&#xff0c;它的基本思想就是往已经排好序的序列里边插入数据。思想类似于玩扑克牌。接下来的排序都是基于下边的这个数组。int a[ ] { 5 , 3 , 9 , 6 , 2 , 4 , 7 , 1 , 8 };直接插入排序我们想要将这个数组排成升序&#xff0c;在最一开始&#xf…

Java性能优化实战(四):IO与网络优化的4个关键方向

IO与网络操作是Java应用性能的常见瓶颈&#xff0c;尤其在高并发场景下&#xff0c;低效的IO处理会导致响应缓慢、资源浪费等问题。本文将聚焦IO与网络优化的四个核心方向&#xff0c;通过真实案例、代码对比和性能数据&#xff0c;详解如何提升IO效率、减少网络传输开销&#…

对齐Wireshark和USRP捕获信号的波形

一、USRP信号 USRP捕获信号的波形如下&#xff1a; 放大后&#xff1a; 100ms 10ms 1ms 100us 10us 1us 二、波形分析 2.1 时间分辨率 采样率61.44MHz, 对应时间分辨率为1/61.44us0.01627us16.27ns。 这时间分辨率够用了&#xff0c;数据包长度为1到20us&#xff1a; 2.2 W…

2025年加密软件技术深度分析:从原理到企业级应用实践

一、加密技术基础与分类加密技术作为信息安全的核心基石&#xff0c;其基本原理是通过特定算法将明文数据转换为不可读的密文&#xff0c;只有持有正确密钥的授权用户才能解密还原。2025年主流的加密技术可分为三大类&#xff1a;‌对称加密‌&#xff1a;使用相同密钥进行加密…