前端使用nodejs写一个post请求接口(二)

本文介绍了如何在Vue前端项目中实现表单密码的MD5加密,并通过axios与Node.js后端进行通信,同时处理跨域问题。涉及到了前端页面编码、axios配置、接口定义以及后端接收和响应数据的过程。
摘要由CSDN通过智能技术生成

1.过程简介

(1)创建一个前端项目
(2)配置跨域
(3)创建一个接口项目(方法同上一篇)
在这里插入图片描述

2.实现

2.1 前端页面代码

结构

 <div class="main">
        <div class="passwordUpload">
            <div class="input">
                <el-input v-model="password" size="mini"></el-input>
            </div>
            <el-button type="primary" size="mini" @click="passwordSend">发送</el-button>
        </div>
    </div>

样式

//这里用的sass
.main {
    width: 100%;
    height: 100%;
}

.passwordUpload {
    display: flex;
    align-items: center;
    height: 100px;
    border-bottom: 1px solid black;

    .input {
        width: 150px;
        padding: 0 20px;
    }
}

methods

 passwordSend () {
 //这里将表单里的密码使用MD5js加密后传输,前面博客说过
      const password = { body: md5(this.password) }
      interfaces.sendPassword(password).then(res => {
        //处理逻辑...
      }).catch(err => {
        //处理逻辑...
      })
    }

js文件
在src下找一个风水宝地创建一个文件夹放js文件

axios.js文件

//axios.js文件--start
// 引入
import axios from 'axios'
// 创建实例
const http = axios.create({
  baseURL: 'http://localhost:8080/api'
})
// 设置请求超时时间
http.defaults.timeout = 2500
// 为已知需要花费很长时间的请求覆写超时设置
http.get('/.....', {
  timeout: 5000
})
export default http
//axios.js文件--end

interface.js文件

//interface.js --start
import http from './axios'
export const sendPassword = (param) => http.post('/savePassword', param)
//interface.js --end

vue.config.js文件

//vue.config.js --statr
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  // 代理
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:9000',
        changeOrigin: true,
        pathRewrite: { '^/api': '' }
      }
    }
  }
})
//vue.config.js --end

2.2 nodejs接口代码

const express = require('express');//引入express
const app = express();//创建应用对象
app.use(express.json());//获取请求体的中间件,用于获取请求体里的数据
app.use(express.urlencoded({ extended: true })); // 解析表单数据

// 创建路由规则
// request 是对请求报文的封装
// response 是对响应报文的封装
app.post('/savePassword', (request,response)=>{
    const data = request.body//获取到请求体中的数据
    const visitorIP = request.headers['x-forwarded-for'] || request.connection.remoteAddress;
    console.log(data,'获取的请求参数');
    console.log(visitorIP,'请求者的地址');
    //这里不对数据进行处理,直接返回给页面
    response.status(200).send(data)
})

//监听端口启动服务
app.listen(9000, () => {
    console.log("服务已经启动, 9000 端口监听中....");
});

app.all('*', (req, res) => {
    res.status(400).send('访问的路径错误')
})

3.前端获取返回数据和接口打印日志

在这里插入图片描述

在这里插入图片描述

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值