Nodejs如何使用Mongodb存储与提供后端CRD服务
Node.js是一个基于事件驱动和非阻塞I/O模型的服务器端JavaScript运行环境,它能够快速构建高可扩展性的网络应用程序。Mongodb是一个开源、高性能、高可扩展性的NoSQL数据库,它支持文档数据库和键值数据库等多种数据存储方式。本文介绍了如何利用Node.js与Mongodb搭建后端CRD服务。
1. 安装Mongodb
首先,需要在本机或服务器上安装Mongodb。在命令行中输入以下命令即可安装:
sudo apt-get update sudo apt-get install mongodb
Mongodb安装完成后,可以通过以下命令启动Mongodb服务:
sudo service mongodb start
2. 创建Mongodb数据库
在Mongodb中,数据以文档的形式存储在集合中。在本文中,我们将创建一个名为node_crud的数据库,并在该数据库中创建名为users的集合,用于存储用户数据。在命令行中输入以下命令创建数据库:
mongo
use node_crud
db.createCollection("users")
3. 安装Node.js模块
使用Node.js与Mongodb进行交互,需要安装官方提供的Mongodb Node.js模块。在命令行中输入以下命令即可安装:
npm install mongodb --save
4. 编写Node.js代码
接下来,可以利用Node.js编写CRUD服务的代码。以下是示例代码:
const express = require('express');
const bodyParser = require('body-parser');
const MongoClient = require('mongodb').MongoClient;
const ObjectId = require('mongodb').ObjectID;
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
const port = 8080;
MongoClient.connect("mongodb://localhost:27017/", (err, database) => {
if(err) throw err;
const db = database.db("node_crud");
app.listen(port, () => {
console.log('We are live on ' + port);
});
// CREATE
app.post('/users', (req, res) => {
const user = { name: req.body.name, age: req.body.age };
db.collection('users').insert(user, (err, result) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send(result.ops[0]);
}
});
});
// READ
app.get('/users/:id', (req, res) => {
const id = req.params.id;
const details = { '_id': new ObjectId(id) };
db.collection('users').findOne(details, (err, item) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send(item);
}
});
});
// UPDATE
app.put('/users/:id', (req, res) => {
const id = req.params.id;
const details = { '_id': new ObjectId(id) };
const user = { name: req.body.name, age: req.body.age };
db.collection('users').update(details, user, (err, result) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send(user);
}
});
});
// DELETE
app.delete('/users/:id', (req, res) => {
const id = req.params.id;
const details = { '_id': new ObjectId(id) };
db.collection('users').remove(details, (err, item) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send('User ' + id + ' deleted!');
}
});
});
});
5. 运行Node.js服务
在命令行中输入以下命令,即可启动Node.js服务:
node server.js
至此,一个基于Node.js与Mongodb的后端CRUD服务就已经搭建完成了。可以通过浏览器或Postman等工具发送请求来对数据进行CRUD操作,比如POST http://localhost:8080/users 创建用户数据,GET http://localhost:8080/users/:id 获取指定ID的用户数据,PUT http://localhost:8080/users/:id 更新指定ID的用户数据,DELETE http://localhost:8080/users/:id 删除指定ID的用户数据。
