react ガンマン時計


node.js の react で、ガンマン時計です。


react ガンマン時計

ガンマン時計 (@gunman.mydns.jp)


node.js の フロントエンド向けフレームワーク react です。

  • フロントをreact。
    • 実行すると Node.js のサーバとなり動作します
    • クライアントで実行をするJavaScriptを生成します
    • ブラウザ側にdownloadして動作し、 ユーザの入出力(ブラウザインタフェース)を管理します
    • ページに「state」という情報を保持して、 ページをレンダリングします。
    • JSXという言語(Javascript拡張)でhtmlを生成します
    • SPA(Single-Page-Application)の記述が楽、な気がします
  • バックエンドは Express+MongoDBです(Angular の実験で作ったもの)。
    • こちらも Node.jsのサーバ
    • RESTのAPIを実装しています


【フロント react】

github

herokuで公開

gunman.mydns.jp:3001で公開


【バックエンド express+MongoDB】

github

herokuで公開

gunman.mydns.jp:3000で公開

仕様 : REST-API (CURLアクセス例)
  • GET (get all)
    • $ curl -X GET https://gunclock-api-express.herokuapp.com/gunclock
  • GET (get one)
    • $ curl -X GET https://gunclock-api-express.herokuapp.com/gunclock/5e508050de797e6001faa558
  • POST (create)
    • $ curl -X POST https://gunclock-api-express.herokuapp.com/gunclock -H 'Content-Type:application/json' -d '{ "color":"#ffcccc", "size": "15" }'
  • PUT (update one)
    • $ curl -X PUT https://gunclock-api-express.herokuapp.com/gunclock/5e508050de797e6001faa558 -H 'Content-Type:application/json' -d '{ "color":"#ccffcc", "size": "20" }'
  • DELETE (delete one)
    • $ curl -X DELETE https://gunclock-api-express.herokuapp.com/gunclock/5e50817cde797e6001faa559


【メモ】

下記の、pre の中で、大文字小文字がおかしくなっている。ソースは下記を参照。
--- ここから pre ---
■react
下記で、枠組みが作られる

 $ npx create-react-app gunclocks       (枠組みをつくる:実行可能なapができる)
 $ cd gunclocks
 $ npm start                            (apの実行)

 $ ls
 README.md  node_modules  package-lock.json  package.json  public  src

■src/index.js
・Gunclockクラスで、「マークダウン」(htmlの形式
で囲んだ記述など)を、返却する ・Gunclockを、タグのように記述することで、入れ子ができる「<Gunclock />」 ----------------------- import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; //import App from './App'; import Gunclock from './Gunclock'; import * as serviceWorker from './serviceWorker'; //ReactDOM.render(<App />, document.getElementById('root')); ReactDOM.render(<Gunclock />, document.getElementById('root')); // If you want your app to work offline and load faster, you can change // unregister() to register() below. Note this comes with some pitfalls. // Learn more about service workers: https://bit.ly/CRA-PWA serviceWorker.unregister(); ----------------------- ■src/Gunclock.js ・Gunclockクラスで、「マークダウン」(htmlの形式
で囲んだ記述など)を、返却する ----------------- import React, { Component } from 'react'; export default class Gunclock extends Component { constructor(props) { super(props); this.state = { gunclocks: [], name: '' }; } render() { const { gunclocks } = this.state; return (
    {gunclocks.map((gunclock, index) =>
  • {gunclock}
  • )}
); } } ----------------- ■参考 https://webkikaku.co.jp/homepage/blog/hpseisaku/javascript/react-start/ ■heroku $ git init $ git add -A $ git commit -m "gunclock-react" $ heroku login (ブラウザで認証) $ heroku create gunclock-react $ heroku config:set PORT=80 $ heroku config:set GUNCLOCK_API=https://gunclock-api-express.herokuapp.com/gunclock $ git push heroku master https://gunclock-react.herokuapp.com/ & & ' ` " (test for 'escape-pre')

[ ガンマンのページへ戻る ]