自己用node写一个最简单的接口
本人前端萌新,毕业要做个校车投诉管理系统,目前只具备一些前端知识,最近学了vue之后,想通过vue+node实现这样一个系统。因为第一次接触全栈开发,通过这次学习终于搞明白了前端和后端是如何联系起来的。网上查了些资料之后,终于用node完成了第一个接口,并在其他端口的html页面上跨域成功调用。在这里记录一下,方便以后复习。
首先创建一个项目目录,使用npm init完成项目初始化
再使用npm i express cors --save 在项目里安装express和cors
express是用来实现路由的 ,cors用来解决跨域请求问题。
在跟目录下创建一个app.js入口文件
const express = require('express')
const cors=require('cors')
const app = express()
app.use(cors())//解决跨域
//以下注释部分据说是另一种解决跨域问题的方法
// app.all('*', function(req, res, next) { //设置跨域访问
// res.header("Access-Control-Allow-Origin", "*");
// res.header("Access-Control-Allow-Headers", "X-Requested-With");
// res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
// res.header("X-Powered-By",' 3.2.1');
// res.header("Content-Type", "application/json;charset=utf-8");
// next();
// });
var infor = [ //定义一个数组数据,待会通过请求传给前端
{
name:'jay',
age:20,
sex:'男',
hobby:'basketball'
}
]
//定义接口路由
app.get('/',function(req,res){
res.status(200),
res.json(infor)
})
const server=app.listen(5200,function () {
const {address,port}=server.address()
console.log('http server is running http://%s :%s', address, port);
})
写完以后在终端中使用命令node app.js将服务跑起来,服务端工作完成。
然后在html页面中设置一个button,通过点击事件调用接口
//我这里使用的是axios请求的接口
//要在html中的<html>文件中导入
//<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
query(){
//这里注意请求协议,我一开始写成了https没注意到,搞了很久才发现
axios.get("http://localhost:5200/").then(
function (response) {//成功回调
console.log(response);
},function(err){//失败回调
console.log(err);
})
}
api调用成功