node.js与express.js创建项目以及连接数据库

news2024/11/28 4:41:12

搭建项目

一、技术准备

node版本:16.16.0

二、安装node成功后,安装express,命令如下:

npm install -g express

或者:

npm install --location=global express

再安装express的命令工具:

npm install --location=global express-generator

三、创建项目:myservice是自己起的项目名称

express myservice

进入项目文件:

cd myservice

安装依赖包:

npm install

安装依赖包有时候会超时,多次执行npm install就会安装完成

启动项目:

npm start

浏览器访问http://localhost:3000就会看到页面

连接数据库

安装数据库包:

npm install mysql2

新建数据库配置文件config/dbconfig.js:

const mysql = require('mysql2/promise');
// 创建数据库连接池

const pool = mysql.createPool({

host: '', // 主机名

port: 3306,

user: '', // 用户名

password: '', // 密码

database: '' // 数据库名称

});

module.exports = pool

新建api目录存放接口文件,新建api/test.js接口文件:

const express = require("express");

const app = express();

const pool = require("../config/dbconfig");

app.get("/", async (req, res) => {

try {

const connection = await pool.getConnection(); // 从连接池获取连接对象

// 查询数据库操作

const [rows] = await connection.query("SELECT *FROM users");

// 返回结果

res.json(rows);

// 关闭连接

connection.release();

} catch (error) {

console.log(error);

res.status(500).send("Internal Server Error");

}

});

module.exports = app;

最后在入口文件app.js里引入(参考项目自带的两个路由引入方法):

var testRouter = require('./api/test');

app.use('/test', testRouter);

每次修改保存后,需要重启项目才能生效!

重启后访问地址:http://localhost:3000/test,就可以看到数据库users表里的数据:

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

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

相关文章

PVE安装后报错:NO IOMMU Detected解决办法

1、首先在BIOS中确定图形界面卡,打开了VT-D功能。 2、修改grub vim /etc/default/grub 找到:GRUB_CMDLINE_LINUX_DEFAULT"quiet" 然后修改为 GRUB_CMDLINE_LINUX_DEFAULT"quiet intel_iommuon" 3、使用命…

巨人踏步,港口自动驾驶提速向前打开行业新空间

按照吞吐量排名,全世界最大的50个港口,中国占了29个。在中国的港口和码头上,一场进化正在发生:人在这个生态中占的比重越来越少,技术接管的要素正在越来越多。像是最具代表性的全球综合自动化程度最高的码头——上海洋…

笔记本电脑Win11重装系统教程

在笔记本电脑Win11操作过程中,用户如果遇到很严重的系统问题,就可以重新正常的Win11系统,快速解决Win11系统问题。但是,部分新手用户不知道不知道如何操作才能给Win11笔记本电脑重装系统?以下小编分享笔记本电脑Win11重…

深入理解TCP网络协议(2)

目录 1.TCP的状态转换 1.1 LISTEN状态和ETABLISHED状态 ​编辑2.TIME_WAIT 和 CLOSE_WAIT 2.滑动窗口 1.TCP的状态转换 我们通过上图可以看到TCP状态转换的详细过程.在实际开发的过程中,我们不需要了解的这么细致.为了方便大家的理解,我挑几个主要的状态来给大家聊一下 1.…

易语言系列学习1

通过本文章你会学习到 如果 如果真 获取编辑框内容 关闭本程序 监听按键让它等价于点击某个按钮 运算:或 且 非(注意中间要有一个空格,否则会报错) 效果 .版本 2.程序集 窗口程序集_启动窗口.子程序 _按钮2_被单击. 如果真 (编…

docker-学习-4

docker学习第四天 docker学习第四天1. 回顾1.1. 容器的网络类型1.2. 容器的本质1.3. 数据的持久化1.4. 看有哪些卷1.5. 看卷的详细信息 2. 如何做多台宿主机里的多个容器之间的数据共享2.1. 概念2.2. 搭NFS服务器实现多个容器之间的数据共享的详细步骤2.3. 如果是多台机器&…

Vue学习笔记(一)JS导入导出

Vue学习笔记(一)JS导入导出 js文件-导出、批量导出、默认导出 showMessage.js export function simpleMessage(msg){console.log(msg); }export function complexMessage(msg){console.log(new Date()": "msg); }// 批量导出 // export {si…

[工具探索]Safari 和 Google Chrome 浏览器内核差异

最近有些Vue3的项目,使用了safari进行测试环境搞开发,发现页面存在不同程序的页面乱码情况,反而google浏览器没问题,下面我们就对比下他们之间的差异点: 日常开发google chrome占多数;现在主流浏览器 Goog…

stm32--simulink开发之--timer的学习,硬件输入中断,触发事件,STM32通用定时器之输出比较模式与PWM模式(重要理解)

下面三个模块,一个比一个高级,当然使用是越来越简单 STM32F4xx系列控制器有2个高级控制定时器、10个通用定时器和2个基本定时器(推荐学习) 1,第一个模块:Timer 浅层理解:计数,不停的触发 Starts timer co…

Nginx简单阐述及安装配置

目录 一.什么是Nginx 二.Nginx优缺点 1.优点 2.缺点 三.正向代理与反向代理 1.正向代理 2.反向代理 四.安装配置 1.添加Nginx官方yum源 2.使用yum安装Nginx 3.配置防火墙 4.启动后效果 一.什么是Nginx Nginx(“engine x”)是一个高性能的HTTP…

【百度Apollo】探索创新之路:深入了解Apollo开放平台

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

vue3页面跳转产生白屏,刷新后能正常展示的解决方案

可以依次检查以下问题: 1.是否在根组件标签最外层包含了个最大的div盒子包裹内容。 2.看看是否在template标签下面直接有注释,如果有需要把注释写到div里面。(即根标签下不要直接有注释) 3.在router-view 中给路由添加key标识。 …

通过Netbackup恢复Oracle备份实操手册

1、系统环境描述 1 2、恢复前数据备份 2 2.1 在NBU上执行一次完整的备份 2 2.2 查看ORACLE的备份集 3 2.2.1在备份客户端上查看备份集 3 2.2.2在备份服务器netbackup上查看客户端备份集 4 3、本机恢复方法 5 3.1丢失SPFILE文件恢复方法 5 3.2丢失CONTROLFILE文件恢复方…

【Week-P7】VGG16识别咖啡豆

Week-P7 VGG16识别咖啡豆 一、环境配置二、准备数据三、搭建网络结构 VGG16四、开始训练五、查看训练结果六、改变优化器,VSCode运行 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项…

AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提取方法分享)

Java可使用的OCR工具Tess4J使用举例 1.简介1.1 简单介绍1.2 官方说明 2.使用举例2.1 依赖及语言数据包2.2 核心代码2.3 识别身份证信息2.3.1 核心代码2.3.2 截取指定字符2.3.3 去掉字符串里的非中文字符2.3.4 提取出生日期(待优化)2.3.5 实测 3.总结 1.简…

阿里云AI通义千问出bug,解决不了直接弃,开始对国产AI由支持变失望

AI怀疑人生 引言对比出大问题思考尝试解决代码结尾 引言 今天的第二篇 原本是想写这个爬取什么值得买 延续零基础爬什么值得买的榜单——爬虫练习题目一(答一) 但没想到 这个阿里云的AI 通义千问 删了我很多的对话 也就是说 我之前一直提问的AI角色没了…

VxTerm:C++ MFC,在工具栏中增加Edit/ComboBox等组件,打造一个地址栏/搜索栏功能

VxTerm软件可以在本站链接下载:唯一国产化SSH工具下载,单文件纯绿色不需要安装,替代SecureCRT 在软件的主界面中,增加了一个地址栏功能。 本人的文章内容都是经本人亲自实现并验证成功的干货,关注我,互相交…

代理模式详解(重点解析JDK动态代理)

- 定义 在解析动态代理模式之前,先简单看下整个代理模式。代理模式分为普通代理、强制模式、动态代理模式。其中动态代理模式主要实现方式为Java JDK提供的JDK动态代理,第三方类库提供的,例如CGLIB动态代理。 代理模式就是为其他对象提供一种…

【百度Apollo】自动驾驶规划技术:实现安全高效的智能驾驶

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

与数组相关经典面试题

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…