Vue.js 和 Node.js 全栈项目的运行与部署指南

Vue.js 和 Node.js 全栈项目的运行与部署指南

  • 前言
  • 具体运行方式
    • 导入数据库初始化
    • 安装配置nodejs
    • 启动server后端
    • 启动client前端
    • 确保前后端正确连接

前言

本博客用来介绍一下一个包含前端和后端代码的全栈项目MoreMall,前端部分使用了 Vue.js,后端部分使用了 Node.js。
项目结构如图:
在这里插入图片描述

Client 代表前端
其中
node_modules/: 存放项目依赖的模块。
public/: 存放公共资源的目录,比如网页里面需要用到的图片素材等等。
src/: 前端源代码目录,Vue 组件和其他资源等。
package.json: 项目依赖和脚本配置文件。
Server 代表后端
其中
bin/: 存放可执行文件的目录,通常用来启动服务器。
commons/: 公共模块目录,包含 db.js(数据库配置)、JSONResponse.js 和 settings.js(设置文件)。
controllers/: 控制器目录,处理业务逻辑。
node_modules/: 存放项目依赖的模块。
public/: 存放公共资源的目录。
app.js: 主应用文件,通常是 Express 应用的入口文件。
package.json: 项目依赖和脚本配置文件。
mall.sql: 数据库 SQL 文件,包含数据库的初始化脚本。

具体运行方式

导入数据库初始化

这里用的是mysql数据库,具体的安装配置,看这篇:mysql安装配置,完成之后,我们搜索找到mysql打开:
在这里插入图片描述
在输入完你的密码之后,创建一个这个项目的数据库,这里就叫做mall:

create database mall;

创建完成之后用 show databases;指令来检查一下里面是不是有mall这个数据库,然后一定要记得使用use mall;指令来确保使用的是这个数据库,不然后面插入数据的时候会报错找不到这个数据库。
在这里插入图片描述
接下来,需要指定新的认证插件,是为了确保客户端或应用程序可以与MySQL服务器兼容,因为某些系统或工具可能不支持MySQL 8.0及更高版本中引入的默认认证插件:

--指定新的认证插件
alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
-- 刷新权限
flush privileges;

接下来就可以愉快地插入数据库里面的初始数据了
在这里插入图片描述
你可以直接整体执行完这个这个mall.sql,但可能太长了会报错。于是可以选择手动把里面的内容,一次一条或多条手动粘贴到你的数据库里面,执行完了之后select啥的检查一下看看都成功了没有,这一步就完成啦~

安装配置nodejs

具体操作可以看一下:nodejs配置安装
进行这一步操作的时候一定要细心一点,环境变量配置啥的不要打错了。

启动server后端

‘win+R’,输入cmd,打开命令行窗口,选择对应的盘符然后cd转到server文件夹所在的路径,也可以直接找到该文件夹路径然后输入cmd然后回车。在这里插入图片描述

cd bin
node 需要启动的文件名

我这里的命名是www,里面放的就是启动这个后端:
在这里插入图片描述
输入完成之后,如果出现下面这样的情况,也不要慌,就是这个端口号被占用了,打开任务管理器,把冲突的改关的命令行关一下就好啦:
在这里插入图片描述
如果出现下面的结果,恭喜你,已经成功了一半了,说明你的后端正确的运行启动了(注意,这个命令行窗口不要关闭):
在这里插入图片描述

启动client前端

还是老套路,要么’win+R’,输入cmd,打开命令行窗口,选择对应的盘符然后cd转到client文件夹所在的路径,也可以直接找到该文件夹路径然后输入cmd然后回车。
在命令行窗口中输入:

npm run serve

如果出现很多库啥的都没有,可能这个项目里面很多npm有关的依赖没有,需要先执行npm install,如果一切都做好了,应该得到的结果是:
在这里插入图片描述
这个Network:unavailable目前我也还没有解决,可能是防火墙或者服务器啥的有点问题,但是并不影响正常使用,无伤大雅。
接下来,把这个给的这个网址复制输入到浏览器中,看到如下画面,说明你的前端配置正常,已经成功了80%了~
在这里插入图片描述
那这行命令的作用是啥呢?有的项目可能也并不是run sever,这个是在client\package.json里面的,里面会存在几种类型的脚本,选择需要的运行即可,里面的vue-cli-service serve 是 Vue CLI 提供的一个命令,用于启动开发服务器:
在这里插入图片描述

确保前后端正确连接

找到server目录下的数据库设置的部分,如下:
在这里插入图片描述
有的可能直接写在db.js里面了,有的可能单独写在settings.js里面,找到里面的:
在这里插入图片描述
需要确认的有三个地方:

  1. 是你的DB_HOST,记住这个数字,这个是数据库配置项,主要用于连接应用程序与数据库服务器。
  2. 确认你的DB_PASSWORD,看看你的这里的密码和你的SQL的用户密码是不是一样的,更正成你的SQL用户密码
  3. 确认这个DB_DATABASE与你创建的数据库名字是否一样,更正成你所为这个项目创建的数据库的名字

接下来更改client命令行窗口给你的网址,把里面的localhost换成上面的DB_HOST的值,如,我的这个项目是把 http://localhost:8080/换成http://127.0.0.1:8080/。然后再次粘贴到浏览器,发现与之前的界面没有任何变化,并且查看server的命令行窗口发现报错并且运行停止了,再次审查上面那三个需要考虑的地方然后进行更正。

如果正确运行了,界面会变得不一样,会有后端数据进来,会得到结果:
在这里插入图片描述
并且,在后端server的命令行中也可以看到对应的数据交互:
在这里插入图片描述


恭喜你,到此为止,这个项目的运行和部署就成功啦!
如果您感觉这篇文章对您有帮助,希望您能点个赞,谢谢!

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

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

相关文章

多阶段分层构建容器化Spring Boot应用程序

上一节中,容器化spring boot应用程序-CSDN博客我们介绍了基于简单的Dockerfile对spring boot进行容器化的过程,本讲将介绍如何基于Dockerfile进行多阶段的分层构建过程,希望对大家有所帮助。 Spring Boot从版本2.3.0开始支持分层构建容器化的…

Mysql中varchar类型数字排序不对踩坑记录

场景 在进行表设计时将版本号字段设计了为varchar类型,尽量从表设计阶段将数字类型列设计为int型。 再进行排序时如果版本号累计到了10及以上,那么再进行排序时则会出现问题。 比如下面执行排序时发现10被排在了第一位。 这是因为 varchar类型对数字…

51单片机第8步_absacc.h库函数

本章重点学习库函数absacc.h的使用,介绍绝对宏和绝对地址的用法。故事有点老掉牙&#xff0c;但学校的教授们还在继续。 #include <REG52.h> //包含头文件REG52.h,使能51内部寄存器; #include <absacc.h> #include <stdio.h> //包含头文件stdio.h //_get…

已备案网站变更并且不影响现有业务的方案

已备案网站变更并且不影响现有业务的方案 近日有个工作上的需求&#xff0c;已备案网站变更并且不影响现有业务&#xff0c;记录一下。 需求 域名&#xff1a;XXXXXX.com备案变更前主体&#xff1a; 海南XXXXXX科技有限公司 备案变更后主体&#xff1a; 深圳XXXXXX科技有限…

【05】从0到1构建AI生成思维导图应用 -- 前端交互实现

【05】从0到1构建AI生成思维导图应用 – 前端交互实现 大家好&#xff01;最近自己做了一个完全免费的AI生成思维导图的网站&#xff0c;支持下载&#xff0c;编辑和对接微信公众号&#xff0c;可以在这里体验&#xff1a;https://lt2mind.zeabur.app/ 上一章&#xff1a;http…

【图解大数据技术】Hive、HBase

【图解大数据技术】Hive、HBase Hive数据仓库Hive的执行流程Hive架构数据导入Hive HBaseHBase简介HBase架构HBase的列式存储HBase建表流程HBase数据写入流程HBase数据读取流程 Hive Hive是基于Hadoop的一个数据仓库工具&#xff0c;Hive的数据存储在HDFS上&#xff0c;底层基于…

Linux 常用命令 - dd 【复制及转换文件内容】

简介 dd 命令源自于磁盘复制&#xff08;disk dump&#xff09;的缩写&#xff0c;是 Linux 和 Unix 系统中用于转换和复制文件的一个强大工具。它可以在复制过程中进行格式转换&#xff0c;支持不同的块大小&#xff0c;能够直接对硬盘设备进行操作&#xff0c;非常适合进行备…

android里面json操作

1.读取assets下面xzhd/aikit/pck.json String json = null; try { InputStream is = activity.getAssets().open(aikitPathInData+"xzhd/aikit/pck.json"); int size = is.available(); byte[] buffer = new byte…

容器进程

一、容器进程和宿主机进程的关系 容器在进程空间上和宿主机是隔离的&#xff0c;每创建一个容器&#xff0c;该容器都有一个独属的进程空间简称PID NameSpace。但是容器本质也是一个进程&#xff0c;自然是由其父进程创建的&#xff0c;这个可以使用ps aux命令验证。 | 容器视…

Windows 下写C++代码的必备

在 Windows 下写代码&#xff0c;还需要用到 Windows.h 头文件的话&#xff0c;需要记住以下两点&#xff1a; 一定要 predefine 一个宏&#xff0c;NOMINMAX&#xff0c;禁用掉 windows 定义的 min 和 max 宏 #include <winsock.h> #define WIN32_LEAN_AND_MEAN #defin…

【高考志愿】材料科学与工程

目录 一、专业概述 二、就业前景与方向 三、院校选择和报考建议 3.1 院校选择 3.2 报考建议 四、材料科学与工程专业排名 高考志愿选择材料科学与工程专业时&#xff0c;确实是一个需要深思熟虑的决策过程。以下是更详细和扩展的考虑因素&#xff1a; 一、专业概述 学习…

Tesseract Python 图片文字识别入门

1、安装tesseract Index of /tesseract https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.3.0.20221214.exe 2、安装中文语言包 https://digi.bib.uni-mannheim.de/tesseract/tessdata_fast/ 拷贝到C:\Program Files\Tesseract-OCR\tessdata 3、注…

Java面试题:描述你如何向非技术人员解释技术概念

向非技术人员解释技术概念时&#xff0c;需要使用简单明了的语言&#xff0c;并结合类比和实际例子&#xff0c;使复杂的技术内容变得易于理解。以下是一些具体的策略&#xff1a; 使用类比&#xff1a; 熟悉的场景类比&#xff1a;将技术概念与日常生活中的熟悉事物进行类比。…

每天写java到期末考试--实验四---接口与抽象类--6.29

第一部分&#xff1a;接口与类的实现 Shape接口 java复制代码public interface Shape { double getArea(); double getPerimeter(); } Circle类 public class Circle implements Shape { private double r; public Circle(double r) { this.r r; } Override publ…

ISO26262标准

什么是ISO26262&#xff1f; ISO 26262(国际功能安全标准)是一个涵盖整个汽车产品开发过程的汽车功能安全标准。ISO 26262继承或改编自工业自动化行业的安全要求标准IEC61508&#xff0c;但专门为汽车行业量身定制。最新版本是ISO26262-1:2018。 它包括诸如需求分析、安全分析…

STM32CubeMx的学习记录系列(2)- STM32G474RET6

最近有个小比赛&#xff0c;需要用到G4&#xff0c;不过找了一圈没有找到标准库的代码&#xff0c;只能使用hal&#xff0c;用CubeMX来生成配置代码。 共同特点 ARDUINO Uno V3 扩展连接器 ST morpho 扩展引脚接头&#xff0c;可完全访问所有 STM32 I/O 采用LQFP64或LQFP48封…

51单片机第9步_结构和联合

本章重点学习结构和联合。 //结构和联合应用举例 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf();向串口发送一串字节; /…

Llamaindex实战-在本地使用多种LLM

Llamaindex实战-在本地使用多种LLM 有关我们支持的大语言模型列表及其功能比较&#xff0c;请查看我们的大语言模型模块指南。 使用LLM的基本范式 构建基于 LLM 的应用程序时的第一步是决定使用哪个 LLM&#xff1b;也可以使用多个。 LLM 可用于管道的多个不同阶段&#xff…

6.29学习笔记

马克思 “流”&#xff1a;两个选它纺织厂生产的棉花属于&#xff1a;不变资本、流动资本&#xff1b;机器属于&#xff1a;不变资本、固定资本剩余价值生产的基本方法&#xff1a;绝对剩余价值、相对剩余价值货币的基本职能&#xff1a;价值尺度&#xff0c;流通手段“价格围…

p2p、分布式,区块链笔记: libp2p基础

通信密钥 noise::{Keypair, X25519Spec} X25519/Ed25519类似RSA 算法。Noise 用于设计和实现安全通信协议。它允许通信双方在没有预先共享密钥的情况下进行安全的密钥交换&#xff0c;并通过加密和身份验证保护通信内容。libp2p 提供了对 Noise 协议的原生支持&#xff0c;它允…