ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. React와 Node(Express) 연동하기
    2018~2019/React.js 2018. 10. 2. 14:45

    1. create-react-app react-client(프로젝트이름)


    2. express react-server(프로젝트이름)


    2-1) es6문법 사용하기

    npm install --save-dev babel-cli babel-preset-es2015 설치

    .babelrc 파일 생성 후 아래와 같이 작성

    {
    "presets": ["es2015"]
    }


    - react-server/package.json 수정

    "scripts": {
    "start": "babel-node ./bin/www"
    },


    2-2) react-server/app.js 정적 파일을 react-client/build로 수정


    app.set('views', path.join(__dirname, '../react-client/build'));
    app.set('view engine', 'jade');

    app.use(express.static(path.join(__dirname, '../react-client/build')));


    2-3) react-server/bin/www port번호를 8080으로 수정


    var port = normalizePort(process.env.PORT || '8080');
    app.set('port', port);


    3. react project에서 proxy 설정

    - react-client/package.json 수정

    "proxy": "http://localhost:8080",


    4. 소스 파일 수정

    4-1) react-client/src/App.js 수정

    import React, { Component } from 'react';
    import './App.css';

    class App extends Component {
    state = {users: []}

    componentDidMount() {
    fetch('/users')
    .then(res => res.json())
    .then(users => this.setState({ users }));
    }

    render() {
    return (
    <div className="App">
    <h1>Users</h1>
    {this.state.users.map(user =>
    <div key={user.id}>{user.name}</div>
    )}
    </div>
    );
    }
    }

    export default App;

    4-2) react-server/routes/users.js 수정

    var express = require('express');
    var router = express.Router();

    /* GET users listing. */
    router.get('/', function(req, res, next) {
    res.json([{
      id: 1,
      name: "Kim"
    }, {
      id: 2,
      name: "Park"
    }]);
    });

    module.exports = router;


    5. 연동 확인

    - react project에서 npm run build 실행

    - npm start

    - http://localhost:3000/ 또는 http://localhost:8080/



    '2018~2019 > React.js' 카테고리의 다른 글

    3. React와 Express, MongoDB 연동하기 (2) Create  (0) 2018.10.04
    now.sh 느릴 때  (0) 2018.10.02
    2. React와 Express, MongoDB 연동하기 (1) Retrieve  (0) 2018.10.02
    babel 설치  (0) 2018.08.17
    리액트 정리하기  (0) 2018.07.06
Designed by Tistory.