使用node.js和mongodb创建一个安息的API
在本教程中,我们将以MongoDB作为数据存储构建单页node.js rentful API。我们将查看如何设置基本node.js服务器,创建必要的路由以提出请求,然后与mongoDB实例进行交互。我们的目标是构建一个可以处理用户身份验证和数据存储的RESTFUL API。我们还将利用一些Node.js软件包,例如Express和Mongoose,以使开发更容易。
设置服务器
在构造我们的node.js应用程序之前,我们需要设置服务器。如果您没有现有的Node.js服务器,则可以使用提供Node.js托管的Heroku或Digitalocean之类的云平台。
安装软件包
设置了Node.js服务器后,我们需要安装一些软件包以使我们的开发更加容易。我们将利用Express和Mongoose软件包为我们的应用程序。例如,要安装Express,我们将使用此命令:
npm install express
对于mongoose,我们可以使用:
npm install mongoose
用Express创建路线
现在我们已经安装了基本服务器设置并安装了软件包,我们可以使用Express创建路线。 Express允许我们将路由映射到每个路线的特定URL路径,HTTP动词和回调。我们可以使用以下代码设置一些基本路由:
const express = require('express');
const app = express();
// Root route
app.get('/', (req, res) => {
res.send('Hello World!');
});
// Other routes
app.get('/about', (req, res) => {
res.send('About page');
});
// Start server
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server running at port ${port}`);
});
在此代码中,我们可以看到,当请求路由时,Express将使用请求和响应参数调用关联的回调。请求参数包含有关请求的信息,例如查询参数和HTTP动词。响应参数可用于响应客户端,例如发送响应主体或设置标头。
连接到MongoDB
我们进行了路线设置后,我们可以继续连接到MongoDB实例。为此,我们将利用Mongoose。我们可以使用以下代码来设置我们的Mongoose连接:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true, useUnifiedTopology: true});
此代码将连接到默认端口(27017)和test
数据库上的MongoDB实例。建立连接后,我们可以开始创建模型并与数据库进行交互。
用猫鼬创建模型
设置了连接后,我们就可以开始创建模型。 Mongoose允许我们为我们的数据创建模式,以定义数据的类型和验证。例如,我们可以使用以下代码创建一个用户模型:
const userSchema = new mongoose.Schema({
username: {type: String, required: true},
email: {type: String, required: true},
password: {type: String, required: true}
});
const User = mongoose.model('User', userSchema);
此代码使用所需字段创建我们的用户模型。设置模型后,我们可以继续创建API的最后一步。
实现API端点
现在设置了模型,我们可以开始创建API端点。我们将使用前面创建的快速路线来处理我们的API请求。例如,我们可以使用以下代码来实现注册端点:
// Register endpoint
app.post('/register', async (req, res) => {
const { username, email, password } = req.body;
if(!username || !email || !password) {
return res.status(400).send({error: 'All fields required.'});
}
try {
const user = new User({ username, email, password});
await user.save();
res.send(user)
} catch(err) {
console.log(err);
res.status(500).send({error: 'Error registering new user, please try again.'});
}
});
在此代码中,我们可以看到,当向/register
端点提出请求时,我们首先检查是否存在所有必需的字段。如果是,我们创建一个新的用户实例并将其保存到我们的数据库中。然后,我们响应用户实例。
结论
在本教程中,我们查看了如何以MongoDB为数据存储来创建node.js retsful API。我们讨论了如何设置基本node.js服务器,安装软件包以使开发更容易,并使用Express创建路由。然后,我们将其连接到MongoDB实例,并使用Mongoose设置模型。最后,我们实施了一些API端点来处理用户身份验证和数据存储。希望本教程为使用Node.js和mongodb创建静止API提供了一些见解。
。要进一步阅读,您可以查看以下博客文章,讨论使用Node.js,Typescript和Grpc Building a Microservice Architecture with Node.js, TypeScript, and gRPC。