搭建node服务端并使用express()创建简单数据接口,最后返回前端请求的所需数据

一:搭建服务端

1、在项目中新建一个名为server的文件夹,并在文件夹中新建index.js(用于搭建服务端)和user.js(用于存放返回给客户端的json数据)

index.js文件代码

// 主要分四步:
// 引入-cors解决跨域-引入并发送数据-设置监听端口

var express = require("express"); //首先引入express模块,不了解去看nodejs教程 安装:npm install express 
 
var app = express();
 
var fs = require("fs"); // 文件系统,用于引入user.json的数据 也可以自己随便写个数据 ;
 
var cors = require("cors");// 这个比较重要,解决跨域问题.npm install cors 装一下
 
app.use(cors({
 
origin: ['http://localhost:8080','http://127.0.0.1:8080'], // 这是本地的默认地址和端口,vue启动的项目就是在这里,这样保证了等会我们在浏览器能访问服务器的数据(user.json)
 
methods: ["GET", "POST"],
 
alloweHeaders: ["Content-Type", "Authorization"]
 
}))
 
 
// 获取请求地址中的/user并匹配,可以添加多个
app.get("/user", function (req, res) { //"/user" 是自定义的,用于显示在地址栏

// 数据来源:
    //方法一:从文件中获取数据
    //读取储存数据的文件
    fs.readFile(__dirname + "/" + "user.json", "utf-8", function (err, data) { // __dirname是文件夹的名,我们用fs读取user.json
    // 把读取的文件通过 res.end()发送回给客户端
    res.send(data) 
    })

    //方法二:在本文件临时定义数据
    // var response ={
    //     "data1": {
    //         "name": "Mr.李",
    //         "age": "24",
    //         "look": "very handsome",
    //         "girlfriend":"保密"
    //     },
    //     "data2": {
    //         "name": "Mr.王",
    //         "age": "25",
    //         "look": "very handsome",
    //         "girlfriend":"保密"
    //     }
    // }
    // res.send(response) 
    
});


// 监听请求地址的对应端口
var server = app.listen(3000, function () { // 设置服务端端口为3000,即:http://127.0.0.1:3000
 
var host = server.address().address
 
var port = server.address().port

console.log("应用实例,访问地址为 http://%s:%s", host, port)
 
})

user.json文件代码

{
    
    "data1": {
        "name": "Mr.李",
        "age": "24",
        "look": "very handsome",
        "girlfriend":"保密"

    },

   
    "data2": {
        "name": "Mr.王",
        "age": "25",
        "look": "very handsome",
        "girlfriend":"保密"

    }
    
}

2、进入index.js目录下执行node index.js命令启动服务器

 *开启成功如上图

二:在客户端向刚才所创建的服务端请求数据

1.因为vue官方已不再维护vue-resource,所以选择使用axios来作为请求工具

(1)、安装axios

(2)、在src/main.js中将axios加入到vue原型中(全局引用)

2、这里为了图方便,直接在src/App.vue中的mounted钩子函数里面发送请求

<template>
  <div id="app">
    <div id="nav">
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </div>
    <router-view/>
  </div>
</template>

<script>
  export default {
    name:"App",
    mounted(){
      this.axios
      .get("http://10.10.38.63:3000/user")
      // .get("http://127.0.0.1:3000/user")
      .then(res => {
        console.log(res);
        // console.log(res.data.data1);
        // console.log(res.data.data2);
      })
      .catch(res => {
        console.log('err')
        console.log(res)
      })
    }
  }
</script>
<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

#nav {
  padding: 30px;
}

#nav a {
  font-weight: bold;
  color: #2c3e50;
}

#nav a.router-link-exact-active {
  color: #42b983;
}
</style>
View Code

 ⚠️注意:get后面的请求地址后面的/user对应index.js中服务器的"/user"

3、运行yarn serve命令运行本地项目 ,打开控制台,可以看到已经请求成功并返回数据

 直到这里,前端可以自己造接口和数据来了,这样如果后台接口还没开发好的话,可以用来模拟动态数据,类似mock模拟数据

原文地址:https://www.cnblogs.com/itgezhu/p/13094482.html