반응형
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const app = express();
// Connect to database
const db = new sqlite3.Database(':memory:', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the in-memory SQlite database.');
});
// Initialize table
db.run('CREATE TABLE IF NOT EXISTS items (name text)');
app.use(express.json());
// Create a new item
app.post('/api/items', (req, res) => {
const name = req.body.name;
if (!name) {
return res.status(400).json({error: 'Name is required'});
}
db.run('INSERT INTO items (name) VALUES (?)', name, function(err) {
if (err) {
return res.status(500).json({error: err.message});
}
res.json({id: this.lastID, name});
});
});
// Read all items
app.get('/api/items', (req, res) => {
db.all('SELECT * FROM items', (err, rows) => {
if (err) {
return res.status(500).json({error: err.message});
}
res.json(rows);
});
});
// Read a single item
app.get('/api/items/:id', (req, res) => {
const id = req.params.id;
db.get('SELECT * FROM items WHERE id = ?', id, (err, row) => {
if (err) {
return res.status(500).json({error: err.message});
}
if (!row) {
return res.status(404).json({error: 'Item not found'});
}
res.json(row);
});
});
// Update an item
app.put('/api/items/:id', (req, res) => {
const id = req.params.id;
const name = req.body.name;
if (!name) {
return res.status(400).json({error: 'Name is required'});
}
db.run('UPDATE items SET name = ? WHERE id = ?', name, id, function(err) {
if (err) {
return res.status(500).json({error: err.message});
}
if (this.changes === 0) {
return res.status(404).json({error: 'Item not found'});
}
res.json({id, name});
});
});
// Delete an item
app.delete('/api/items/:id', (req, res) => {
const id = req.params.id;
db.run('DELETE FROM items WHERE id = ?', id, function(err) {
if (err) {
return res.status(500).json({error: err.message});
}
});
});
반응형
'프로그래밍 > 잡동산이' 카테고리의 다른 글
[nodejs] 네이버 종목의 뉴스를 크롤링 해보자. (0) | 2023.02.12 |
---|---|
[키움 api] 키움증권 api를 이용해서 테마 그룹 가져오기 (0) | 2023.02.12 |
[MongoDB] 우분투 재시작시 자동 실행 방법 (0) | 2023.02.11 |
[MongoDB] Collection Backup (0) | 2023.02.11 |
구글 드라이브 PC동기화를 해보자. (0) | 2022.10.10 |