前端开发工程师怎样独立调试前端项目?

在前后端分离开发的大环境下,前端开发已经不仅仅局限于所谓的切图,写页面的工作,同时,也给前端开发定义了新的含义。有前后端分离项目开发的工程师,都知道,这样的项目开发起来有多么的方便,快捷。前端开发工作与后端开发工作完全独立,通过规范而统一的接口文档就可以衔接项目开发。那么,在项目开发阶段,前端开发工程师怎样独立调试已开发完成的前端项目呢?通过阅读本篇文章,你就可以GET到这一技能!

在本篇文章中,会讲到一下内容:

  • 前端项目调试环境的搭建(Express)
  • NGINX解决跨域
  • Express链接MySQL数据库

适合阅读人群:前端开发初学者及对前端项目独立调试感兴趣的人员。

前期准备及说明

本篇文章使用到的技术栈有node【v10.16.2】、Express【v4.17.1】、vue【3+】、nginx【v.1.16.1】。所以电脑要搭建好node环境。文章所有操作都在Windows操作系统下完成。

项目目录如下:

│
└─project    // 项目目录  
    │
    ├─front  // 前端项目根目录
    │       
    ├─server //  后端服务目录
    │       
    ├─nginx  //  nginx目录

模拟后端服务

本篇文章选择Express来模拟后端服务并新建API。Express是基于 Node.js 平台,快速、开放、极简的 Web 开发框架,基于Express,再结合所选择的各种 HTTP 实用工具和中间件,可以快速方便地创建强大的 API。

打开CMD命令提示符,使用以下命令安装。

npm install express -g
npm install express-generator -g

进入server【后端服务目录】目录,在此目录下打开CMD命令提示符,运行以下命令,初始化express工程。

express exp-api   // exp-api为工程名,可自定义

进入新建的express工程目录【exp-api】,运行以下命令,安装链接mysql数据路所需的依赖包。

npm install mysql --save-dev

PS:关于初始化数据库内容,在这里就不详细说明了,

使用数据库管理软件,新建一个数据库【test】,并初始化一张表【t_user】,包含字段有id、name、sex、age。

接下来就是要配置链接MySQL数据库了。

在exp-api目录下,新建config目录,并在此目录下新建一个db.js文件,这个文件就是数据库配置文件。键入代码以下代码。

const mysql = require('mysql');
const dbConfig = {
    // 数据库链接地址
    host: 'localhost',
    // 数据库开放端口
    port: '3306',
    // 数据库访问用户名
    user: 'xxxx',
     // 数据库访问密码
    password: 'xxxxxx',
     // 数据库名
    database: 'test',
     // 数据库编码
    charset: 'utf8mb4'
}
/**
 * 封装数据库连接方法
 * @param string sql 数据库语句
 * @param array args 数据库查询参数
 * @param function callback 回调函数
 */
function dbConnection(sql,args,callback){
    // 使用数据库连接池连接数据库
    var pool = mysql.createPool(dbConfig); 
    pool.getConnection((err,conn) => {
        if(err) return;
        conn.query(sql,args,callback);
        // 关闭数据库连接
        conn.release();
    })

}
module.exports = {dbConfig, dbConnection}

在exp-api目录下,新建controllers目录【此目录用来存放数据库对象操作方法】,并新建一个userController.js文件,键入以下代码。

const db =  require('../config/db');
const findAll = (req,res) => {
    let sql = 'select * FROM t_user';
    let args = [];
    let callback = (err,data) => {
        if(err){
            console.log('数据库查询出错!');
        } else {
            res.json({
                list: data
            })
        }
    }
    db.dbConnection(sql,args,callback);
}
module.exports = {
    findAll
}

在exp-api/routes目录下新建users.js文件【此文件一般在初始化express工程时,会自动新建,如果目录下存在此文件,修改即可】,键入以下代码。

var express = require('express');
var router = express.Router();
const UserController = require('../controllers/userController') ;

/* GET user page. */
router.get('/', UserController.findAll);

module.exports = router;

修改exp-api工程的入口文件app.js,把刚刚新增的查询用户列表的路由添加进去。

// 导入新增的user路由
var usersRouter = require('./routes/users');
// 映射user路由访问地址
app.use('/api/findAll', userRouter);

此番操作配置,就是在模拟后端新建一个查询用户列表/findAll的API

启动exp-api工程之后,就可以通过工程访问地址+“/api/findAll”的形式访问了,这与访问后端API几乎是一摸一样的。

使用NGINX解决跨域访问

在本篇文章中后端模拟工程exp-api使用的是express工程默认的访问端口3000,而前端工程使用的是vue工程默认访问端口8080,在模拟前后端调试时,必然会有跨域访问的问题。

打开nginx的配置文件,找到监听80端口的server配置代码,添加以下代码

location /api {
    proxy_pass http://127.0.0.1:3000/api;
}
location /front {
     proxy_pass http://127.0.0.1:8080/front/;
}
        

PS:配置说明

定义前端工程的代理统一访问地址为localhost/front,定义后端API统一代理访问地址为localhost/api。在此,着重说明以下,前后端工程的必须设置一个访问目录【前端:/front,后端:/api】,否则,在进行nginx代理访问时,会出现路径方面的问题。

前端工程访问地址配置

本篇文章中前端工程使用的时vue3.0,vue升级到3.0后,工程已经深度集成了webpack,初始化项目后,已经去除了包括webpack配置文件等一些目录及文件,使项目目录更加简洁。想要配置工程包括配置webpack,得在工程根目录下新建一个vue.config.js文件。具体如何编写该配置文件,请移步vue官方文档说明。

在vue.config.js中添加以下代码

publicPath: process.env.NODE_ENV === 'production'
      ? '/production-sub-path/'
      : '/front/',

总结

前端工程调试得方法不止本文所讲的一种方法。此方法只是笔者在项目中所习惯使用的,此方法的好处在于调试时可以使用项目的测试数据库,不需要手动编写或者配置接口返回的数据。

原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/front-end/project-adjuster.html

Like (1)
Donate 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
Previous 2020年8月26日
Next 2020年9月8日

相关推荐

  • 浏览器渲染机制

    为什么要了解浏览器渲染页面机制?主要是还是性能的优化。 了解浏览器如何进行加载,我们可以在引用外部样式文件、外部JS时,将它们放到合适的位置,是浏览器以最快的速度,将文件加载完毕。…

    2019年5月31日
    1.6K
  • Webpack入门,打包第一个工程

    简介 Webpack是一个开源的JavaScript模块打包工具,其最核心的功能是解决模块之间的依赖,把各个模块按照特定的规则和顺序组织在一起,最终合并为一个JS文件(有时会多个)…

    2022年11月8日
    410
  • Angular与vue对比

    Vue.js 是开源的 JavaScript 框架,能够帮助开发者构建出美观的 Web 界面。当和其它网络工具配合使用时,Vue.js 的优秀功能会得到大大加强。如今,已有许多开发…

    2019年6月13日
    1.7K
  • 简单酷炫的hover效果,值得收藏

    在浏览B站的时候,发现一个简单酷炫的hover效果的制作视频。浏览完之后,发现其中包含的知识点蛮经典的,特此收藏。 HTMl结构布局很普通,就是简单的一个水平垂直方向居中的表单,代…

    2020年7月20日
    1.8K
  • vue开发小程序项目总结

    最近全权负责一个小程序的前端开发工作,之前小程序使用原生技术开发过一版,当时由于进入项目组晚,且项目开发周期短,没有详细了解项目的各种情况,导致后期开发过程中出现各种各样的让人烦心…

    2020年11月24日
    1.4K
  • node环境下使用express框架连接MySQL数据库

    目前,越来越多的企业选择使用前后端分离模式新建项目,这样,使得开发工作越来越便捷。那么,作为前端开发,怎样能在后端开发没有完成之前,测试并运行前端项目呢。在这里,小编推荐使用exp…

    2020年8月26日
    1.7K
  • 异步神器async-await

    async-await和Promise的关系 async-await是建立在promise机制之上 ,async-await是promise和generator的语法糖。增强了代码…

    2019年6月3日
    1.5K
  • typeof 和 instanceof的区别

    在前端开发过程中,typeof与instanceof是经常要用到的, 了解两者的区别是每一个合格前端工程师所要掌握的。 JavaScript中typeof和instanceof常用…

    2019年6月18日
    1.6K
  • WEB前端工程师必备技能

    前端开发到底是一个怎样的工作?都需要掌握什么技能?怎样区分初级、中级、高级?作为一名前端开发工程师,应该朝哪个方向发展?怎样提升自己的专业技能…… 你是否也曾有这样一些疑问,你的这…

    2019年6月6日
    2.8K
  • 一道前端函数面试题

    这题的规则是这样的 拿到这种题目,我先来说说我自己的做题流程,一般会去找它最简单的形态。我们一步一步来拆解。 先去掉 sumOf() 变成了以下形态 嗯&#82…

    2020年11月22日
    1.1K

发表回复

Please Login to Comment