IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> react中axios模块的使用(案例) -> 正文阅读

[JavaScript知识库]react中axios模块的使用(案例)

作者:language-javascript

1、跨域的问题,需要安装跨域模块

npm install cors

2、app.js导入跨域模块

var cors = require('cors');
app.use(cors());

3、对数据库进行链接配置

新建dbconfig.js文件
const Sequelize = require('sequelize');

const MysqlDB = new Sequelize('dbms','root','178945688',{
    host: 'localhost',
    port: 3306,
    dialect: 'mysql',
    pool: {
        max: 20,
        min: 3,
        idle: 10000
    }
})

module.exports = MysqlDB;

4、建立模型

//创建bookModel.js
const Sequelize = require('sequelize');
const MysqlDB = require('../config/dbconfig');

const Book = MysqlDB.define('bookInfo',{
    id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,  //是不是自增
        primaryKey: true    //是不是主键
    },
    isbn:{
        type: Sequelize.CHAR(13),
        allowNull: false,
        unique: true
    },
    name: {
        type: Sequelize.STRING(200),
        allowNull: false,
        unique: true //表示取值唯一
    },
    author: {
        type: Sequelize.STRING(100),
        allowNull: false
    },
    press: {
        type: Sequelize.STRING(100),
        allowNull: false
    },
    price: {
        type: Sequelize.DECIMAL(7,2),
        allowNull: false
    },
    pubdate: {
        type: Sequelize.DATE,
        allowNull: false
    },
    imgpath: {
        type: Sequelize.STRING(255),
        allowNull: false
    }
},
    {
        freezeTableName: true,
        timestamps: false
    })

module.exports = Book;

5、新建一个接口文件

//创建bookApi.js
var express = require('express');
var router = express.Router();
const Book = require('../../model/bookModel');
/*
*  http://localhost:8089/bookapi/books
**/
router.get('/books',(req, res) => {
    Book.findAll({
        raw: true
    }).then(result=>{
        res.json(result)
    }).catch(err=>{
        console.log(err)
    })
})

module.exports = router;

6、创建组件

import React,{ Component } from 'react'
import { Table,Button,Glyphicon } from "react-bootstrap";
import './home.css'
import { HOST,PORT } from "../config/apiconfig";
import axios from "axios";

class UserTable extends Component{
    constructor(props) {
        super(props);
        this.state = {
            data: []
        }
    }
    componentDidMount() {
        const _this = this;
        axios.get(`${HOST}:${PORT}/bookapi/books`)
            .then((res)=>{
                _this.setState({
                    data: res.data  //data对应的是后台封装的result
                })
            }).catch(err=>{
                console.log(err)
        })
    }
    render() {
        const { data } = this.state
        return (
            <div>
                <Table bordered striped hover>
                    <thead>
                      <tr>
                          <th width={100}>编号</th>
                          <th width={100}>ISBN</th>
                          <th width={200}>书名</th>
                          <th width={100}>作者</th>
                          <th width={100}>出版社</th>
                          <th width={100}>单价</th>
                          <th width={200}>出版时间</th>
                          <th width={100}>封面</th>
                          <th width={200} colSpan={2}>操作</th>
                      </tr>
                    </thead>
                    <tbody>
                    {
                       data.map((book)=>{
                           return (
                               <tr key={book.id}>
                                   <td>{ book.id }</td>
                                   <td>{ book.isbn }</td>
                                   <td>{ book.name}</td>
                                   <td>{ book.author}</td>
                                   <td>{ book.press}</td>
                                   <td>{ book.price}</td>
                                   <td>{ book.pubdate}</td>
                                   <td>{ book.imgpath}</td>
                                   <td>
                                       <Button bsStyle='link' bsSize='small'>
                                           <Glyphicon glyph='edit'/>
                                           编辑
                                       </Button>
                                   </td>
                                   <td>
                                       <Button bsStyle='link' bsSize='small'>
                                           <Glyphicon glyph='remove'/>
                                           删除
                                       </Button>
                                   </td>
                               </tr>
                           )
                       })
                    }
                    </tbody>
                </Table>
            </div>
        )
    }
}
//导出组件
export default UserTable;

7、修改App.js

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <UserTable />
      </header>
    </div>
  );
}

export default App;

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:04:44  更:2022-03-11 22:07:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:47:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码