使用node.js和mongodb创建一个安息的API
#javascript #网络开发人员 #node #blog

使用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