用node.js写一个图书管理系统
时间: 2023-10-03 20:09:20 浏览: 90
好的,我可以为您提供一个简单的图书管理系统的示例代码:
首先,您需要安装Node.js和MongoDB,并使用npm安装以下依赖项:
```
npm install express body-parser mongoose ejs
```
接下来,创建一个名为`server.js`的文件,并将以下代码复制粘贴到文件中:
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const ejs = require('ejs');
const app = express();
// 连接 MongoDB
mongoose.connect('mongodb://localhost/library', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
mongoose.connection.on('error', (error) => console.log(error));
mongoose.Promise = global.Promise;
// 设置 EJS 模板引擎
app.set('view engine', 'ejs');
// 解析请求体
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 定义图书数据模型
const bookSchema = mongoose.Schema({
title: String,
author: String,
description: String,
});
const Book = mongoose.model('Book', bookSchema);
// 获取所有图书
app.get('/books', (req, res) => {
Book.find({}, (error, books) => {
if (error) {
console.log(error);
} else {
res.render('index', { books: books });
}
});
});
// 获取单个图书
app.get('/books/:id', (req, res) => {
Book.findById(req.params.id, (error, book) => {
if (error) {
console.log(error);
} else {
res.render('show', { book: book });
}
});
});
// 创建新图书
app.post('/books', (req, res) => {
const book = new Book({
title: req.body.title,
author: req.body.author,
description: req.body.description,
});
book.save((error) => {
if (error) {
console.log(error);
} else {
res.redirect('/books');
}
});
});
// 更新图书
app.put('/books/:id', (req, res) => {
Book.findByIdAndUpdate(
req.params.id,
{
title: req.body.title,
author: req.body.author,
description: req.body.description,
},
(error, book) => {
if (error) {
console.log(error);
} else {
res.redirect(`/books/${book.id}`);
}
}
);
});
// 删除图书
app.delete('/books/:id', (req, res) => {
Book.findByIdAndRemove(req.params.id, (error) => {
if (error) {
console.log(error);
} else {
res.redirect('/books');
}
});
});
// 启动服务器
app.listen(3000, () => console.log('服务器已启动'));
```
这个示例代码实现了以下功能:
- 连接MongoDB数据库
- 使用EJS模板引擎渲染视图
- 获取所有图书
- 获取单个图书
- 创建新图书
- 更新图书
- 删除图书
您可以通过发送HTTP请求来测试这些功能,并在浏览器中查看视图。例如,要创建一个新图书,请发送POST请求到`/books`,并在请求正文中包含标题,作者和描述。要查看所有图书,请发送GET请求到`/books`。要查看单个图书,请发送GET请求到`/books/:id`,其中`:id`是图书的ID。要更新或删除图书,请发送PUT或DELETE请求到`/books/:id`。
阅读全文