Vue3 Nodejs后台搭建

embedded/2024/11/14 3:16:35/

在nodejs环境中我们可以利用nodejs+express+mysql去创建后台环境

Nodejs: 运行在非浏览器端的JavaScript(Nodejs是运行javascript的环境)。

express: 一款基于Nodejs, 用于快速创建web服务(后台)的框架。

mysql :数据库,持久化存储数据的工具。

1.环境:Nodejs环境 

(可以通过nvm 管理nodejs版本)

检查nodejs 版本           ------------>   node -v 

2.mysql数据库

数据库是一种让数据持久化储存的工具

通过集成环境的环境安装, 例如: phpstudy wamp 使用mysql

3.数据库可视化管理软件

下载Navicat           可以创建数据库以及数据表

以上三个步骤完成就可以开始创建web服务(搭建后台项目)

4.利用express框架快速搭建后台项目

文档地址:Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网

 ----------->  安装nodemon自动执行代码    npm install -g nodemon

-----------> 全局安装express 生成器     npm install -g express -generator

--------> express 项目名

生成一个后台的项目结构

 5.访问URL

 6.设置模板引擎

把 jade 模板 设置成 html 模板

app.set('views', path.join(__dirname, 'views'));

app.set('view engine', 'jade');

------>下载ejs     npm install ejs

修改代码

javascript">//把以下代码
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');//修改成
// 视图渲染引擎
app.set('views', path.join(__dirname, 'views'));
// 配置Express 视图引擎
app.engine('html', ejs.__express);
app.set('view engine', 'html');

 7.GET 请求

javascript">// 写个 GET 请求的测试方式方法
// 地址: http://localhost:3000/api/user/test
// 方式: GET  (可以通过浏览器地址栏测试)
// 参数: page pageSize id
router.get('/test', async (req, res)=>{// 接收通过GET方式提交的参数let  { page,pageSize,id } = req.query;// 判断参数是否有值if(page === undefined || pageSize === undefined || id === undefined) {res.send({code: -1,msg: '缺少参数' })}else {res.send({code: 200,msg: '获取参数列表成功',page,pageSize,id })}
})

 8.POST 请求

npm install body-parser

在入口文件app.js加入以下代码

var bodyParser = require('body-parser') // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json())

javascript">// 写一个POST 请求的测试方法
// 地址: http://localhost:3000/api/user/example
// 方式: POST  (不能直接通过浏览器地址栏测试,可以通过postman postcode form等)
// 参数: user_name user_pwd
router.post('/example' , async (req,res)=>{// 接收通过POST方式提交的参数let {user_name, user_pwd } = req.body;if(user_name === undefined || user_pwd === undefined) {res.send({code: -1,msg: '缺少参数'})}else {res.send({code: 200,msg: '请求成功。',user_name})}
})

 9.设置cors

------------>设置资源跨域共享                         npm install cors

const cors = require('cors');// 做资源跨域共享 // 设置资源跨域共享 app.use(cors()); 

10.下载 mysql模块

-------> 下载mysql模块           npm  install mysql

数据库配置 

创建    ------------>         database.js

创建  ----------->          db.js 

javascript">//创建database.js 文件
//  数据库配置文件
module.exports = {mysql :{host:'47.93.52.8',//user--->填的是你数据库的useruser:'schools',//password--->填的是你数据库的passwordpassword:'schoolyard123456',//  数据库的名称database:'schools',port:3306}
}

 

javascript">//配置db.js 文件
module.exports = {//调用query方法执行sql语句query: function (sql) {// 返回操作数据库的promisereturn new Promise((resolve, reject) => {// 连接数据库pool.getConnection(function (err, connection) {// 执行sql语句connection.query(sql, function (err, rows) {// 操作失败if(err){reject(err)}// 操作成功else {resolve(rows);}// 释放连接connection.release();})})})}
}

 11.常见的sql语句

查询

// 查询db_message这个表格的所有字段 // let sql = `select * from db_message`; // let sql = `select title, content from db_message`;

条件查询

查询db_message这个表格的所有字段

let sql = `select * from db_message where id='${id}'`; // let sql = `select * from db_message where id='${id}' and author= '${author}'`; let sql = `select * from db_message where id='${id}' or author= '${author}'`;

 关键字查询(模糊查询)

 查询db_message这个表格的所有字段

 let sql = `select * from db_message where title like '%${keyword}%' or author like '%${keyword}%'`;

 插入数据

// 查询db_message这个表格的所有字段

let sql = `insert into db_message(title,content,author)values('${title}','${content}','${author}')`;

删除数据 

 根据id 删除db_message这个表格的相应的记录

let sql = `delete from db_message`

let sql = `delete from db_message where id = '${id}'`


http://www.ppmy.cn/embedded/16047.html

相关文章

语义分割——json文件转shp

前言 在用labelme标注遥感图像后会生成json文件,如果我们想要shp文件,下面给出了具体实现流程。 一、依赖配置 import json import geopandas as gpd from shapely.geometry import Polygon from osgeo import gdal import argparse import glob import…

“亚马逊依赖”之下,傲基科技的品牌势能如何提升?

受益于出口政策红利、低人工成本、完善的供应链以及成熟的生产工艺优势,近年来我国家具出口行业迅速发展。 数据显示,我国家具出口规模1995年仅为11.06亿美元,至2023年增至641.96亿美元。随着出口规模持续扩大,相关企业积极走入公…

Golang编译优化——公共子表达式消除

文章目录 一、概述二、公共子表达式消除2.1 初始划分等价值2.2 细分等价值2.2.1 给所有值标号2.2.2 根据参数细分等价值 2.3 替换重复表达式2.3 .1 按照支配性排序2.3 .2 进行替换操作 一、概述 公共子表达式消除(Common Subexpression Elimination,CSE…

Linux的DNS域名解析服务

目录 1.DNS 1.1定义 1.2作用/功能 1.3域名结构 1.4两种查询方式 1.5DNS域名解析工作原理 1.6DNS系统类型 2.正向解析实验​ 2.1安装bind服务,查看配置文件 2.2配置文件配置及文件内容说明 3.反向解析实验 4.配置主从DNS服务器 1.DNS 1.1定义 DNS域名系…

嵌入式4-24

作业: 整理思维导图 定义一个矩形类Rec,包含私有属性length,width,有以下成员函数: void set_length(int l); //设置长度 void set_width(int w); //设置宽度 int get_length(); //获取长度 int get_width(); //获取宽…

《统计学习方法》 第4章 朴素贝叶斯法

文章目录 前言一、朴素贝叶斯法二、朴素贝叶斯法的学习和分类三、朴素贝叶斯算法四、贝叶斯估计总结 前言 本文只要记录一些书中的一些小知识点,挑一些本人认为重要的地方进行总结。 各位道友!道长(zhǎng) 道长(chǎng) 一、朴素贝叶斯法 朴素贝叶斯…

Leaflet加载geowebcache的WMTS服务

方法1&#xff1a;leaflet.TileLayer.WMTS插件 插件地址https://github.com/alexandre-melard/leaflet.TileLayer.WMTS 用法示例https://hanbo.blog.csdn.net/article/details/80768710 我的示例代码 <!DOCTYPE html> <html lang"zh"> <head><…

vue3-setup与vue2的data共存

文章目录 前言一、vue3的setup响应式状态生命周期钩子示例注意事项 二、与vue2 的data 共存setup 与 data 的区别setup 与 data 的共存注意事项示例 前言 vue3 setup 学习 一、vue3的setup Vue 3 的 setup 函数是 Composition API 的核心&#xff0c;它提供了一种新的方式来使…