expressjs 및 postgresql을 사용하여 나머지 API 만들기
21863 단어 tutorialjavascriptapi
먼저 이 프로젝트의 전제 조건이 무엇인지 알려주세요.
다음이 있어야 합니다.
유용한 링크
설치 프로그램 링크
먼저 "package.json"으로 프로젝트 폴더를 초기화합니다.
npm init -y
그런 다음 express, cors(원본 간 요청 허용) 및 pg(postgresql에 연결)를 설치합니다.
npm i express cors pg
그런 다음 nodemon을 개발 종속성으로 설치하여 서버를 자동으로 다시 로드합니다.
프로덕션 서버에서 nodemon을 사용하지 마십시오.
npm i -D nodemon
데이터베이스에 연결하기 전에 먼저 데이터베이스를 생성합니다.
데이터베이스에 연결할 "db.js"파일을 만듭니다.
const { Pool } = require('pg');
const pool = new Pool({
host: 'localhost',
user: 'username',
password: 'password',
port: 5432,
database: 'db_name'
})
module.exports = pool;
이제 route라는 폴더를 만들고 그 안에 "blog.js"파일을 만들어 보겠습니다.
그런 다음 필요한 가져오기를 수행합니다.
const express = require('express');
const router = express.Router();
const pool = require('../db');
첫 번째 API 경로는 데이터베이스에서 모든 블로그를 쿼리하는 것입니다.
pool.query('')
를 사용하여 SQL 명령을 실행합니다.router.get('/', async (req, res) => {
let blogs = await pool.query('SELECT * FROM blogs ORDER BY blogs.timestamp ASC'); // Order posts by ascending order
res.status(200).json({ status: 200, totalResults:blogs.rowCount ,blogs: blogs.rows });
})
그런 다음 두 번째 api 경로는 데이터베이스에서 특정 블로그를 쿼리하는 것입니다.
router.get('/:slug', async (req, res) => {
let blog = await pool.query(`SELECT * FROM blogs WHERE slug='${req.params.slug}'`);
if (blog.rowCount === 0) {
res.status(404).json({ status: 404, message: 'No such blog was found!' });
}else {
res.status(200).json({ status: 200, blog: blog.rows });
}
})
그런 다음 세 번째 api 경로는 데이터베이스에 블로그를 데이터베이스에 추가하는 것입니다.
router.post('/addblog', async (req, res) => {
const { title, tagline, slug, description } = req.body;
let saveBlog = await pool.query(`INSERT INTO blogs (title, tagline, slug, description) VALUES ('${title}', '${tagline}', '${slug}', '${description}')`);
if (!saveBlog) {
res.status(404).json({ status: 404, message: 'Some error occurred! Cannot save blog :(' });
}else {
res.status(200).json({ status: 200, messaeg: 'Your blogpost has been added successfully!' });
}
})
그런 다음 네 번째 api 경로는 데이터베이스의 특정 블로그를 업데이트하는 것입니다.
router.put('/updateblog/:slug', async (req, res) => {
const { title, tagline, slug, description } = req.body;
let saveBlog = await pool.query(`UPDATE blogs SET title='${title}', tagline='${tagline}', slug='${slug}', description='${description}' WHERE slug='${req.params.slug}'`);
if (!saveBlog) {
res.status(404).json({ status: 404, message: 'Some error occurred! Cannot update blog :(' });
}else {
res.status(200).json({ status: 200, messaeg: 'Your blogpost has been updated successfully!' });
}
})
그런 다음 네 번째 api 경로는 데이터베이스에서 특정 블로그를 삭제하는 것입니다.
router.delete('/deleteblog/:slug', async (req, res) => {
let saveBlog = await pool.query(`DELETE FROM blogs WHERE slug='${req.params.slug}'`);
if (!saveBlog) {
res.status(404).json({ status: 404, message: 'Some error occurred! Cannot delete blog :(' });
}else {
res.status(200).json({ status: 200, messaeg: 'Your blogpost has been deleted successfully!' });
}
})
그런 다음 라우터 모듈을 내보냅니다.
module.exports = router;
모든 api 경로를 처리할 "index.js"파일을 만듭니다.
필요한 수입품 만들기
const express = require('express');
const cors = require('cors');
const app = express(); // initialization of express with app
const port = 5000;
그런 다음 이 두 줄의 코드를 작성합니다.
app.use(cors()); // enable cross origin requests
app.use(express.json()); // use default json body parser to parse the data.
API 경로 사용
app.use('/api/blogs', require('./routes/blog'))
맞춤 404 메시지 만들기
app.use((req, res, next) => {
res.status(404).json({ status: 404, message: 'No such route was found! Please go to /api/blogs.' });
})
지정된 포트에서 수신 대기
app.listen(port, () => {
console.log(`RestAPI listening on http://localhost:${port}`)
})
예이! 나머지 API를 성공적으로 만들었습니다.
Reference
이 문제에 관하여(expressjs 및 postgresql을 사용하여 나머지 API 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codewithlaksh/create-a-rest-api-using-expressjs-and-postgres-im6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)