はじめに
NodeでReactを用いてフロントの作業をしていて、せっかくならバックエンドもNodeつかってJavaScriptで作ってみようということでWebApiサーバーを作ってみました。
実行環境
- CentOS7
- Node.js 8.17.0
Expressの動作確認
npm install express
でインストール
以下のサンプルソースを任意のフォルダに保存
var exp = require("express");
var app = exp();
app.get("/",function(req,res){
res.send("Hello,World");
})
app.listen(3000,function(){
console.log("成功")
})
保存したフォルダに移動し、node index.js
で実行した後http://localhost:3000/
にアクセス。
サーバーが起動し、GETリクエストのレスポンスが返ってきました。
MySQLの設定
まずはMySQLにログイン。その後
create database ApiTest;
use ApiTest;
create table api_tbl(id int(5),name varchar(10));
insert into api_tbl values(2,'test');
上記のコマンドで、データベースとテーブルを作成、レコードを追加。
データの取得
作成したテーブルデータをGETリクエストで実際に取得してみます。
var exp = require("express");
var app = exp();
var mysql = require("mysql");
var connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "****",
database: "ApiTest"
});
app.get("/", function (req, res) {
connection.query('select * from api_tbl', function (error, results, fields) {
if (error) throw error;
res.send(results);
});
});
//任意のポート番号
app.listen(****, function () {
console.log("成功");
})
上記のソースを保存し、node index.js
を実行。Postmanを使用してレスポンスを確認します。
先ほど登録したデータがちゃんと返ってきたので成功です。
感想
Expressを使うことでとても簡単にWebApiが作成できて感動しました!
今回は初めてということでGETリクエストのみの実装でしたが、今後CRUDすべてのAPIを実装し、フロント側もReactなどで開発することで1つのWebアプリケーションを作ろうと考えております。