iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

NodeJS with MongoDB專案開發系列 第 26

day 26 node.js with mongo db專案開發

  • 分享至 

  • xImage
  •  

線上書局系統

現在的書有千百種,因此挑選到自己適合的書本就更有難度,因此我想寫一個網站是關於線上書局的網站,符合相關收尋條件的書本列出來供想到的讀者選擇,因此我寫了一個node.js程式的書本購物系統

這個node.js實現了一個線上書局,包括書籍的新增、查詢、修改和刪除功能。我將使用Express.js作為Web伺服器框架,並將書籍資料存儲在一個簡單的資料庫中。

我已經安裝了Node.js、Express.js和一個Node.js資料庫,如MongoDB或SQLite。

接下來,創建一個新的資料夾,然後在該資料夾中創建一個package.json檔案,並且安裝Express.js和其他必要的庫。

npm init -y
npm install express mongoose body-parser

我使用MongoDB作為資料庫,請確保已安裝MongoDB,然後創建一個名為online_bookstore的MongoDB資料庫。

現在,在我的資料夾中創建一個app.js檔案

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = express();
const port = 3000;

// 連接到MongoDB資料庫
mongoose.connect('mongodb://localhost/online_bookstore', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

// 定義書籍資料模式
const bookSchema = new mongoose.Schema({
    title: String,
    author: String,
    genre: String
});

// 創建書籍模型
const Book = mongoose.model('Book', bookSchema);

// 使用body-parser中間件處理JSON和表單資料
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// GET端點,用於檢索所有書籍
app.get('/books', async (req, res) => {
    const books = await Book.find();
    res.json(books);
});

// GET端點,用於檢索特定ID的書籍
app.get('/books/:id', async (req, res) => {
    const book = await Book.findById(req.params.id);
    if (book) {
        res.json(book);
    } else {
        res.status(404).json({ message: 'Book not found' });
    }
});

// POST端點,用於新增書籍
app.post('/books', async (req, res) => {
    const newBook = new Book(req.body);
    const savedBook = await newBook.save();
    res.status(201).json(savedBook);
});

// PUT端點,用於更新特定ID的書籍
app.put('/books/:id', async (req, res) => {
    const updatedBook = await Book.findByIdAndUpdate(req.params.id, req.body, { new: true });
    if (updatedBook) {
        res.json(updatedBook);
    } else {
        res.status(404).json({ message: 'Book not found' });
    }
});

// DELETE端點,用於刪除特定ID的書籍
app.delete('/books/:id', async (req, res) => {
    const deletedBook = await Book.findByIdAndRemove(req.params.id);
    if (deletedBook) {
        res.json(deletedBook);
    } else {
        res.status(404).json({ message: 'Book not found' });
    }
});

// 啟動伺服器
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

這個程式使用了MongoDB來儲存書籍資料,並提供了RESTful API端點,以進行書籍的新增、查詢、修改和刪除操作。我可以使用Postman或Curl等工具來測試API端點。

要運行這個程式,只需在終端中輸入以下命令:

node app.js

然後,我可以使用相應的API端點進行書籍操作,如新增、查詢、修改和刪除。


上一篇
day 25 node.js with mongo db專案開發
下一篇
day 27noed.js with mongo db專案開發
系列文
NodeJS with MongoDB專案開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言