Express (nodejs) 相关
Express 相关
长乐未央学习视频@东哥
1. 安装 express-generator 脚手架,新建项目
- 执行命令
npm install express express-generator@4 -g
同时安装 express,和 express 脚手架.
npm install express express-generator@4 -g
- 通过 express 脚手架创建 express 项目
express --no-view iike-api
cd iike-api
npm install
npm start (启动项目)
指令解释:
- --no-view 表示 不需要视图模板
- iike-api 表示 express 项目名称
- cd iike-api 进入 iike-api 项目中
express --no-view iike-apicd iike-apinpm installnpm start
- 访问本地地址
http://localhost:3000/
页面显示
Express Welcome to Express,表示项目启动成功
2. JSON 格式配置
- 在 express 项目启动成功后,访问本地地址;会发现,是一个 html 格式.
- express 项目一般用来做接口使用,所以我们需要将 html 格式转化为 json 格式.
- 操作如下:
- iike-api\routes\index.js 修改下面代码
router.get("/", function (req, res, next) {res.render("index", { title: "Express" });
});// 替换为
router.get("/", function (req, res, next) {res.json({ message: "Hello Nodejs!" });
});
-
删除 iike-api\public\index.html 文件
-
重启 express 服务
ctrl + c 终止, npm start 重启.
-
刷新页面后,拿到的信息就是 json 格式的了
3. 推荐浏览器处理 JSON 格式的插件
JSON-handle ,
- edge 浏览器可以直接在应用商店中下载
4. 安装 nodemon 解决频繁重启问题
- 下载 nodemon 依赖
npm i nodemon
- 配置 package.json 文件.
将启动脚本
node ./bin/www改为nodemon ./bin/www
"scripts": {"start": "nodemon ./bin/www"},
- 第一次配置,记得重启服务
5. 项目结构 与 代码解析
- routes 文件夹(重要),不同网址对应要不同的程序.后续开发基本都会在 routes 中进行
- app.js 配置跨域 等配置,都会在这里
6. 使用 Docker 运行 mysql (docker 运行不了的话可以使用 小皮面板)
- 安装 docker
docker 官网下载
7. 服务器环境配置软件推荐
宝塔面板
小皮面板
小皮面板 mysql 数据库连接
打开 navicat 或 dbeaver ,数据库可视化管理工具。
以 dbeaver 为例,创建新连接
- 服务器地址: localhost (一般不变)
- 端口: 3306 (一般不变)
- 数据库(名称):express_demo
- 用户名:iike (自定义)
- 密码:666 (自定义)
- 最后点击完成数据库就建好了。
打开小皮面板 ,首页启动 mysql 5… 。
小皮面板 ,点击数据库 ,创建数据库。(输入数据库名称,用户名,密码)
- 这里的数据库名称 就是上面再 dbeaver 中创建的数据库名称。
- 用户名密码 同样是上述中生成的。
回到 dbeaver ,右键创建好的数据库,点击连接。
连接成功后,就可以新建数据表了。
8. Express 创建 mysql 连接
- 在根目录新建一个 database 目录,用来存放 数据库相关操作。
- 新建一个 config.js 文件,用来初始化 mysql 连接操作。
database/config.js 文件内容如下
注意,引入 mysql 之前,记得全局下载一下,npm i mysql
//db.jsconst mysql = require("mysql");
//连接数据库module.exports = {// 数据库基础配置config: {host: "localhost", // 服务器地址port: 3306, // 端口user: "iike", // 数据库用户名password: "666666", // 密码database: "express_demo", // 数据库名称},// 连接数据库,使用 mysql的连接池连接方式sqlContent: function (sql, sqlArr, callBack) {var pool = mysql.createPool(this.config);pool.getConnection((err, connection) => {console.log("mysql-123");if (err) {console.log(err, "连接失败");return;}// 事件驱动回调connection.query(sql, sqlArr, callBack(err, connection));// 释放连接connection.release();});},
};
9. routes 文件引入 mysql
在 routes/index.js 文件中配置如下代码
const express = require("express");
const router = express.Router();
var dbCongif = require("../dataBase/config.js");/* GET home page. */
router.get("/", function (req, res, next) {// 数据库相关操作var sql = "SELECT* FROM cate";var sqlArr = [];var callBack = (err, conn) => {if (err) {console.log(err, "123");console.log("数据库连接失败");} else {conn.query(sql, function (err, result) {if (err) {console.log("查询失败");} else {res.send({list: result,});}});}};dbCongif.sqlContent(sql, sqlArr, callBack);
});module.exports = router;
查询数据表时需注意
!!! 如果控制台报错
Error: ER_NO_SUCH_TABLE: Table 'express_demo.newtable' doesn't exist,数据表不存在。
- 一定要注意,新建的
数据表是否保存- 注意,sql 查询时的
数据表名称大小写问题。数据表保存时,报错
Incorrect table definition; there can be only one auto column and it must be defined(没有主键)
- 选择约束,新建一个约束(id),设置主键。
配置好查询的 sql 后,访问 localhose:3000
- 在我们配置好 mysql 连接后,就可以查询 数据表中的内容了。
- 访问 localhost:3000 , 就回将数据库中的数据以 json 的格式展示在页面中。
10. api.js 文件注意事项
const indexRouter = require("./routes/index");
const usersRouter = require("./routes/users");
const adminRouter = require("./routes/admin/articles");app.use("/", indexRouter);
app.use("/users", usersRouter);
app.use("/admin/articles", adminRouter);// 访问 http://localhost:3000/users 路径,返回 'respond with a resource'
// 访问 http://localhost:3000/users/users 路径,返回 '注意路由路径拼写'// users.js 文件内容
var express = require("express");
var router = express.Router();/* GET users listing. */// '/' 对应 app.js 中的 /users
router.get("/", function (req, res, next) {res.send("respond with a resource");
});router.get("/users", function (req, res, next) {res.send("注意路由路径拼写");
});module.exports = router;
相关文章:
Express (nodejs) 相关
Express 相关 长乐未央学习视频东哥 1. 安装 express-generator 脚手架,新建项目 执行命令 npm install express express-generator4 -g 同时安装 express,和 express 脚手架. npm install express express-generator4 -g通过 express 脚手架创建 express 项目 exp…...
【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?
解决App配置相关问题列表 1、Harmony Next如何配置图标? 2、Harmony Next如何配置App名称? 3、Harmony Next如何配置版本号? 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号? 6、Harmony Next多语言配置在哪…...
台球助教平台开发球厅预约选择机制和助教匹配选择机制详细需求实例说明(第十四章)
以下是对台球助教系统相关功能的详细规划描述: 一、预约助教功能 二、选择球厅练球功能 三、选择陪练时间功能 四、下单订单支付功能 一、预约助教功能 助教信息展示 在专门的 “助教预约” 页面,以列表形式呈现所有可供预约的台球助教。每个助教条目…...
MyBatis通过注解配置执行SQL语句原理源码分析
文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件,配置mapper接口 <mappers><!--注解配置--><mapper…...
开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述
定义 开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)是一种目标检测任务,旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别,而OVOD模型则具有识别“开放词汇…...
PHP基础
PHP代码标记 标准标记:<?php ?> PHP注释 单行:// # 多行:/* */ 两种浏览器输出文本的方式:echo 和 print echo <?php header("Content-Type:text/html;charsetutf-8"); // 输出字符串 ec…...
启用WSL后,使用ssh通道连接ubuntu
Enjoy WSL 目的 启用wsl后,使用windows自带的powershell、cmd操作linux还是不太好使。以下介绍开启ssh通道,并保证能在ssh通道下,也能正常使用wsl中的win命令行,以及正常打开gui应用。 离线更新WSL,请跳转链接:离线…...
GMSSL的不同python版本
链接1(推荐) 这个使用的库,是gm ssl 3.1.1。为什么推荐?因为这个有C源码。 GitHub - GmSSL/GmSSL-Python: Python binding to the GmSSL library 链接2 这个使用的库,是gmssl 3.2.2。搜索3.2.2,找不到相…...
【数理统计】参数估计
文章目录 点估计矩估计法最大似然估计法 区间估计单个正态总体参数的区间估计均值 μ \mu μ 的区间估计方差 σ 2 \sigma^2 σ2 的区间估计 两个正态总体参数的区间估计(略)补充:单侧置信区间 点估计 矩估计法 【定义】设 X X X 是随机…...
ios 混合开发应用白屏问题
一、问题场景 项目业务中某个前端页面中使用了多个echart 组件来显示历史数据, 在反复切换到这个页面后,会出现白屏问题。 二、问题分析 0x116000ab0 - GPUProcessProxy::didClose: 0x116000ab0 - GPUProcessProxy::gpuProcessExited: reasonCrash 0x11…...
对分布式系统的理解以及redis的分布式实现
对分布式系统有哪些了解? 分布式系统是由多个独立的计算节点(通常是计算机或服务器)组成的系统,这些节点通过网络相互通信和协作,共同完成任务。分布式系统的设计旨在提供可扩展性、容错性和高可用性,适用于大规模的数据处理和服务场景。 1. 分布式系统的核心特点 分布…...
VS项目,在生成的时候自动修改版本号
demo示例:https://gitee.com/chenheze90/L28_AutoVSversion 可通过下载demo运行即可。 原理:通过csproject项目文件中的Target标签,实现在项目编译之前对项目版本号进行修改,避免手动修改; 1.基础版 效果图如下 部…...
【蓝桥杯】43699-四平方和
四平方和 题目描述 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。 比如: 502021222 712121222; 对于一个给定的正整数,可…...
我的“双胞同体”发布模式的描述与展望
当被“激情”晕染,重创标题、摘要探索“吸睛”。 (笔记模板由python脚本于2024年12月19日 15:23:44创建,本篇笔记适合喜欢编撰csdn博客的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免…...
flask_socketio 以继承 Namespace方式实现一个网页聊天应用
点击进入上一篇,可作为参考 实验环境 python 用的是3.11.11 其他环境可以通过这种方式一键安装: pip install flask3.1.0 Flask-SocketIO5.4.1 gevent-websocket0.10.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple pip list 详情如下&am…...
go mod tidy 命令
go mod tidy 是 Go 语言的命令,用于清理和更新 go.mod 和 go.sum 文件。它主要有以下功能: 移除未使用的依赖项:从 go.mod 文件中删除那些在代码中不再使用的依赖项。 添加缺失的依赖项:添加代码中使用但尚未记录在 go.mod 文件中…...
(11)YOLOv9算法基本原理
一、YOLOv9 的结构 YOLOv9 引入了可编程梯度信息(PGI),以及基于梯度路径规划的新型轻量级网络架构,为目标检测领域带来了突破性的成果。 Yolov9 网络模型主要由BackBone(主干网络)、Neck(颈层&…...
python学opencv|读取图像(十七)认识alpha通道
【1】引言 前序学习进程中,我们已经掌握了RGB和HSV图像的通道拆分和合并,获得了很多意想不到的效果,相关链接包括且不限于: python学opencv|读取图像(十二)BGR图像转HSV图像-CSDN博客 python学opencv|读…...
中小学教室多媒体电脑安全登录解决方案
中小学教室多媒体电脑面临学生随意登录的问题,主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析: 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用,增加设备损坏的风险。不当…...
Redis篇之Redis高可用模式参数调优,提高Redis性能
1. Redis高可用模式核心 Redis高可用模式的核心是使用主从复制和自动故障转移机制来确保系统在某些节点发生故障时仍然可以正常工作。 常用的高可用架构包括Redis Sentinel模式和Redis Cluster模式,其中Sentinel模式是为了提供高可用性而专门设计的解决方案。 在Re…...
Bootstrap 下拉菜单:全面解析与应用指南
Bootstrap 下拉菜单:全面解析与应用指南 引言 Bootstrap 是一个流行的前端框架,它提供了丰富的组件和工具来帮助开发者快速构建响应式、美观的网页。其中,下拉菜单是 Bootstrap 中一个常用且重要的组件,它能够帮助用户在有限的空间…...
如何将 iQOO 手机备份到Mac
iQOO是vivo旗下的智能手机品牌,以其强劲的性能、出色的游戏体验和极具竞争力的价格而闻名。它深受那些希望以合理价格购买高性能Android手机的用户欢迎。然而,由于缺乏官方的 macOS 管理工具,许多用户发现将 iQOO 手机备份到Mac并非易事。幸运…...
TradingAgents-CN智能交易系统:3种部署方案让你5分钟开启AI投资分析
TradingAgents-CN智能交易系统:3种部署方案让你5分钟开启AI投资分析 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 还在为复杂的金融…...
CVPR 2026 | 全架构通吃!MatchED 插件式模块,CNN/Transformer/扩散模型都能无缝集成
点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达边缘检测是计算机视觉领域的基石任务,从图像分割、深度估计到3D重建,几乎所有高阶视觉任务都依赖精准的边缘信息。但长期以来,一个核心…...
M2LOrder模型在AI编程助手场景的应用:代码注释情感分析
M2LOrder模型在AI编程助手场景的应用:代码注释情感分析 1. 引言 你有没有在代码注释里写过“这里有个天坑,后面的人小心”或者“TODO: 这个逻辑太绕了,得重构”?这些看似随手的吐槽,其实藏着开发者最真实的情绪。代码…...
OpenCVSharp摄像头开发避坑指南:C#实现高清录像+实时滤镜(WinForm版)
OpenCVSharp工业级摄像头开发实战:高清录像与实时滤镜的进阶技巧 在工业视觉检测和实时直播领域,稳定高效地采集视频流是核心需求。C#开发者常选择OpenCVSharp作为计算机视觉开发工具,但实际应用中总会遇到帧率不稳定、资源泄漏或参数配置不当…...
SystemVerilog实战:在Vivado 2023.1中实现跨文件clog2计算的3种方法
SystemVerilog实战:在Vivado 2023.1中实现跨文件clog2计算的3种方法 当我们将传统Verilog项目迁移到SystemVerilog环境时,经常会遇到$clog2函数的兼容性问题。这个看似简单的对数计算函数,在不同工具链和文件类型中的表现可能大相径庭。特别是…...
Fun-ASR语音识别新手入门:3步启动Web服务,麦克风实时转文字实测
Fun-ASR语音识别新手入门:3步启动Web服务,麦克风实时转文字实测 1. 快速认识Fun-ASR Fun-ASR是由钉钉与通义实验室联合推出的语音识别系统,专为中文场景优化设计。与市面上常见的云端语音识别服务不同,它最大的特点是支持本地化…...
突破限速:8大网盘直链解析方案全解析
突破限速:8大网盘直链解析方案全解析 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广,无需输入“…...
Pixel Epic效果展示:支持Markdown+LaTeX混合输出的学术论文初稿生成案例
Pixel Epic效果展示:支持MarkdownLaTeX混合输出的学术论文初稿生成案例 1. 像素史诗:科研写作的新范式 在传统学术写作工具普遍沉闷单调的背景下,Pixel Epic带来了一场视觉与功能双重革新的科研体验。这款基于AgentCPM-Report大模型的智能终…...
