nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)

下面详细讲解如何使用nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例,并实现跨域请求。步骤如下:

1.创建后端项目

1.1 创建项目文件夹,并在终端中进入该文件夹,执行以下命令初始化项目:

npm init

1.2 安装express框架:

npm install express --save

1.3 在项目根目录中创建app.js文件,并编写以下代码:

const express = require('express');
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use(function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
  next();
});

app.get('/api/test', function(req, res) {
  res.json({ message: 'Hello, world!' });
});

const port = process.env.PORT || 3000;
app.listen(port, function() {
  console.log(`Server listening on port ${port}`);
});

1.4 执行以下命令运行项目:

node app.js

1.5 访问 http://localhost:3000/api/test 确认后台服务是否正常运行。

2.创建前端项目

2.1 安装vue-cli:

npm install -g vue-cli

2.2 创建项目:

vue init webpack my-project

其中my-project为项目名称,根据自己需求更改。

2.3 进入项目目录,安装依赖:

cd my-project && npm install

2.4 在/src目录下创建env.js文件,编写以下代码:

const env = {
  API_HOST: 'http://localhost:3000'
};

export default env;

2.5 在/config/index.js中修改以下配置:

module.exports = {
  // ...
  dev: {
    // ...
    proxyTable: {
      '/api': {
        target: env.API_HOST,
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/api'
        }
      }
    }
  },
  // ...
}

2.6 在/src/components/HelloWorld.vue文件中,编写以下代码:

<template>
  <div class="hello">
    <button @click="fetchMessage">Fetch message</button>
    <p>{{ message }}</p>
  </div>
</template>

<script>
import axios from 'axios';
import env from '../env';

export default {
  data () {
    return {
      message: null
    }
  },
  methods: {
    fetchMessage() {
      axios.get('/api/test').then(response => {
        this.message = response.data.message;
      });
    }
  }
}
</script>

2.7 执行以下命令运行项目:

npm run dev

2.8 在浏览器中访问 http://localhost:8080 ,点击 Fetch message 按钮,如果正常显示“Hello, world!”则说明跨域请求成功。

上述示例中,我们通过使用nodeJS(express4.x)后台框架和vue-cli前端工具,来实现了基于前后端分离的应用开发,并解决了跨域问题。在后端中我们创建了一个API接口,前端通过axios库向该接口发起请求,并获取到接口返回的数据。每个项目中的示例代码都可以根据实际情况进行修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域) - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • NodeJS远程代码执行

    NodeJS远程代码执行是指攻击者通过网络将恶意代码传递到目标服务器上,并执行该代码。这种攻击方式往往能够导致服务器系统的完全崩溃或者数据泄露等严重后果,因此需要我们注意和提高防御能力。 下面是远程代码执行的攻击途径和防御措施: 攻击途径 由于网络协议漏洞或脆弱性的存在 通过注入不受信任或者非法内容到网络请求中 通过渗透 web 程序环境中的代码脆弱性,绕过…

    node js 2023年6月8日
    00
  • typescript路径别名问题详解与前世今生的故事

    Typescript路径别名问题详解与前世今生的故事 在 Typescript 项目中,我们常常需要引用比较深层级的文件或者是一些公共模块。为了避免编写冗长的相对路径,Typescript 支持使用路径别名来简化路径,本篇文章将详细讲解 Typescript 路径别名以及在实际项目中的应用。 什么是路径别名? 路径别名其实就是对长路径的简称,在 Typesc…

    node js 2023年6月9日
    00
  • vscode工具函数Symbol使用深入解析

    VSCode工具函数Symbol使用深入解析 在VSCode中,Symbol是一种独特的数据类型,它代表了一种独特的抽象数据类型。Symbol可以被用作JavaScript对象属性的键。在本篇文章中,我们将深入讲解VSCode工具函数Symbol的使用方法。 什么是Symbol? Symbol是ES6中引入的一种新的数据类型,是一种独特的不可变值,并且可以作…

    node js 2023年6月8日
    00
  • node.js实现简单的压缩/解压缩功能示例

    下面是针对 node.js实现简单的压缩/解压缩功能的完整攻略: 压缩文件 首先需要安装 zlib 模块,该模块提供了压缩和解压缩文件的 API。安装方法可以使用 npm 包管理器进行安装: npm install zlib 然后我们就可以在代码中引入该模块并调用其 API,对文件进行压缩: const zlib = require(‘zlib’); con…

    node js 2023年6月8日
    00
  • node.js+Ajax实现获取HTTP服务器返回数据

    下面是一份详细讲解“node.js+Ajax实现获取HTTP服务器返回数据”的攻略: 一、前置知识 在学习本教程之前,读者需要掌握以下知识: HTML、CSS、JavaScript 的基础知识 Node.js 基础知识 AJAX 基础知识 二、实现步骤 本教程将分为以下几个步骤,来实现获取HTTP服务器返回数据: 创建一个服务器 获取服务器端数据 使用Aja…

    node js 2023年6月8日
    00
  • Css-In-Js实现classNames库源码解读

    Css-In-Js实现classNames库源码解读 什么是Css-In-Js? 在传统的前端开发中,我们一般会把 HTML、CSS 和 JavaScript 三种语言分开编写,相互之间独立存在。但是,随着前端项目和业务逻辑的复杂,我们往往需要同时管理大量的样式和 JavaScript 代码,同时还要保证代码的可维护性和可复用性。Css-In-Js 就是为了…

    node js 2023年6月8日
    00
  • node.js cookie-parser 中间件介绍

    关于”node.js cookie-parser 中间件介绍”,下面是完整攻略。 什么是 cookie-parser 中间件 cookie-parser是一种express中间件,它用于解析来自HTTP请求中cookie的数据,并填充req.cookies属性,这样我们可以在我们的中间件和路由处理程序中访问这些值。 如何安装 cookie-parser 中间…

    node js 2023年6月8日
    00
  • Node.js readline 逐行读取、写入文件内容的示例

    Node.js 是一款基于 Chrome V8 引擎的 JavaScript 运行时,它提供了许多强大的 API,包括文件系统 API 和行读写 API,使得我们可以轻松地对文件进行读写和处理。 本文将为大家讲解如何使用 Node.js 的 readline API 对文件进行逐行读取和写入。具体步骤如下: 步骤一:引入 readline 和 fs 模块 首…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部