利用express(nodejs)实现的前后端分离,包教包会,让原本依赖后端的部分工作前端能独立进行!

首先确保你安装了nodejs,安装教程和利用vue-cli初始化一个项目在这就不娓娓道来了。(这里用vue-cli构建的项目,如果不是,只需要在客户端更换成其他请求数据的方法就好了)

一.现在是上午10点,精神很饱满,那我们先来搭建一下服务端吧!

1>>在你的项目下新建一个server的文件夹,新建index.js和user.json,一个搭建服务器,一个用来存要返回客户端的json数据、


2>>这是index.js的代码,直接看吧主要是4块 引入-cors解决跨域-引入并发送数据-设置监听端口

var express = require( "express"); //首先引入express模块,不了解去看nodejs教程 安装:npm install express --save
var app = express();
var fs = require( "fs"); // 文件系统,引入user.json的工具
var cors = require( "cors"); // 这个比较重要,解决跨域问题, 也要npm install cors -- save

app. use( cors({
origin: [ 'http://localhost:8080'], // 这是本地的默认地址和端口,vue启动的项目就是在这里,这样保证了等会我们在浏览器能访问服务器的数据(user.json)
methods: [ "GET", "POST"],
alloweHeaders: [ "Content-Type", "Authorization"]
}))

app. get( "/user", function ( req, res) { //"/user" 是自定义的,用于显示在地址栏
fs. readFile( __dirname + "/" + "user.json", "utf-8", function ( err, data) { // __dirname是文件夹的名,我们用fs读取user.json
res. end( data) // 然后把读取的文件通过 res.end()发送给客户端
})
});
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)
})
//如果有些不懂可以先复制粘贴跑一遍,再慢慢琢磨

3>>在命令行输入node index.js启动服务器。这样服务器就打好了

二.现在我们在客户端向服务器请求数据:这里要给server文件夹专门开个窗口,保证能在客户端和服务端都能在命令行启动


1>>vue不在对vue-resource维护,我们用axios来发送请求,先安装 npm i axios --save ,然后在src下的main.js

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios'
Vue. config. productionTip = false
Vue. prototype. axios = axios; //这样在vue的实例中就可以使用axios,不然会报错axios未定义,关于js原型应该掌握

图个方便,就直接在App里的mouted函数里发送请求了,如图(代码不多,这里自己敲一下)

要注意的是get里面的地址,跟你在服务器设置的有关,要保证一致           


2>>npm run dev 启动我们本地项目 ,打开控制台,可以看到数据请求成功


如果 打印res.data的就可以看到我在服务端user.json的数据


好啦,现在我们就可以自己造个服务器干活啦!减少了和后端大佬们的摩擦!还不是美滋滋!

猜你喜欢

转载自blog.csdn.net/illusion_melody/article/details/80980834
今日推荐