Express MySQL Express.js 및 MySQL로 간단한 REST API 구축

21004 단어 nodejavascriptwebdev
Express.js는 백엔드로 작동하고 일부 데이터베이스를 운영하는 등의 node.js 웹 애플리케이션입니다. 이 기사에서는 REST API를 만드는 방법을 배웁니다.



REST API 익스프레스 및 MySQL



이 자습서를 계속 따르기 위한 요구 사항은 express.js 및 SQL 언어로 작업하는 기본 수준을 이미 알고 있다고 가정합니다.

프로젝트 디렉토리 생성




mkdir simple-api
cd simple-api


Pro Tip !
Actually, you can scaffold or initialize express' project with express-generator npm package.



package.json 생성




npm init


Express.js 및 해당 종속성 설치




npm install express --save



npm install cors body-parser mysql --save


index.js 만들기



이제 우리가 해야 할 일은 프로젝트의 루트 디렉토리에 파일index.js을 만드는 것입니다. 이 파일 아래에 다음 코드를 작성/붙여넣으십시오.

const express = require('express'),
  app = express(),
  cors = require('cors'),
  bodyParser = require('body-parser');

// make server object that contain port property and the value for our server.
var server = {
  port: 4040
};

// use the modules
app.use(cors())
app.use(bodyParser.json());

// starting the server
app.listen( server.port , () => console.log(`Server started, listening port: ${server.port}`));


코드가 제대로 작동하는지 확인합니다. 당신은 그것을 테스트 할 수 있습니다.

node index.js


산출:

Server started, listening on port: 4040


데이터베이스 준비




CREATE DATABASE simpleapi;
USE simpleapi;


그런 다음 users라는 새 테이블을 만듭니다.

CREATE TABLE users(
id INT AUTO_INCREMENT PRIMARY KEY DEFAULT NULL,
name VARCHAR(125),
gender VARCHAR(25)
);


그런 다음 데이터베이스를 연결하십시오.

const express = require('express'),
  app = express(),
  mysql = require('mysql'), // import mysql module
  cors = require('cors'),
  bodyParser = require('body-parser');

// setup database
db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'simpleapi'
})

// make server object that contain port property and the value for our server.
var server = {
  port: 4040
};
......



다음으로 프로젝트의 루트 디렉터리routes에 새 디렉터리를 만들고 users.js라는 새 파일을 넣습니다.

$ mkdir routes
$ tree -I node_modules
.
├── index.js
├── package.json
├── package-lock.json
└── routes

1 directory, 3 files
$ touch routes/users.js


이 코드를 users.js에 붙여넣으세요.

const express = require('express'),
  router = express.Router();

// get user lists
router.get('/list', function(req, res) {
  let sql = `SELECT * FROM users`;
  db.query(sql, function(err, data, fields) {
    if (err) throw err;
    res.json({
      status: 200,
      data,
      message: "User lists retrieved successfully"
    })
  })
});

// create new user
router.post('/new', function(req, res) {
  let sql = `INSERT INTO users(name, gender) VALUES (?)`;
  let values = [
    req.body.name,
    req.body.gender
  ];
  db.query(sql, [values], function(err, data, fields) {
    if (err) throw err;
    res.json({
      status: 200,
      message: "New user added successfully"
    })
  })
});

module.exports = router;


아래와 같이 파일index.js을 편집합니다.

....
// routers
const usersRouter = require('./routes/users');
// use the modules
app.use(cors())
app.use(bodyParser.json());
// use router
app.use('/users', usersRouter);

app.listen( server.port , () => console.log(`Server started, listening on port: ${server.port}`));


curl 로 새 사용자를 만들려고 합니다.



먼저 컴퓨터에 curl이 설치되어 있어야 합니다.

curl -X POST \
 http://localhost:4040/users/new \
 -H "Content-Type: application/json" \
 -d '{"name":"Nurahmat", "gender":"male"}'


응답이 될 것입니다.

{"status":200,"message":"New user added successfully"}


이 사용자가 사용 가능한지 확인하기 위해 생성된 라우터http://localhost:4040/users/list에 액세스합니다.



잡았다! 이름이 Nurahmat인 사용자를 사용할 수 있습니다!.

양식 입력을 통해 새 사용자 추가



이전에 우리는 지금 curl를 통해 새 사용자를 추가하는 방법을 시연했습니다. 동일한 작업을 그래픽으로 수행하면 어떻습니까? 시작하자 !

양식 입력 페이지 만들기




<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Tambah User Baru</title>
</head>
<body>
 <form action="/users/new" method="POST">
  <input type="text" name="name" placeholder="Nama">
  <label>Gender:</label>
  <label for="male1">
  <input id="male1" type="checkbox" name="gender" value="male">
  Male
  </label>
  <label for="female1">
  <input id="female1" type="checkbox" name="gender" value="female">
  Female
  </label>
  <button type="submit">Add</button>
 </form>
</body>
</html>

path node.js 모듈을 로드하는 중입니다.

const express = require('express'),
  path = require('path') // add path module,
  app = express(),
  cors = require('cors'),
  mysql = require('mysql'),
  bodyParser = require('body-parser');


양식 입력 페이지를 제공하고 urlencoded 파서(index.js)를 활성화하는 새 경로 생성

....
app.use(cors())
app.use(bodyParser.json());
app.use(express.json())
app.use(express.urlencoded({extended: true})) // parsing incoming requests with urlencoded based body-parser

// use router
app.use('/users', usersRouter);
// router user input
app.get('/', function(req, res) {
  res.sendFile(path.resolve(__dirname,'views') + '/input.html');
});
...


경로에 액세스하면 localhost:4040/


이제 새 사용자를 추가해 보겠습니다.



그리고 ! 무슨 일이야?! 당신은 나에게 말할 수 있습니까! 이 기사를 즐기시기 바랍니다. 그리고 express.js와 MySQL로 Rest API를 만드는 방법에 대한 더 적절한 방법이 있는지 알려주세요. 저도 당신과 같은 초보자이기 때문입니다.

감사,
참조: Maxrooted

좋은 웹페이지 즐겨찾기