Express MySQL Express.js 및 MySQL로 간단한 REST API 구축
21004 단어 nodejavascriptwebdev
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
Reference
이 문제에 관하여(Express MySQL Express.js 및 MySQL로 간단한 REST API 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nurofsun/building-simple-rest-api-with-express-js-and-mysql-140p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)