以下是一个使用Serverless框架、Node.js和MongoDB Atlas构建REST API的简单示例。
首先,确保你已经安装了serverless
和mongodb
的npm包。
npm install express mongodb serverless-http
然后,创建一个名为serverless.yml
的文件,并配置必要的Provider设置。
service: restapi-mongodb-atlas
provider:
name: aws
runtime: nodejs12.x
region: us-east-1
stage: dev
environment:
MONGODB_URI: mongodb+srv://<username>:<password>@cluster0.mongodb.net/myDatabase?retryWrites=true&w=majority
functions:
api:
handler: handler.api
events:
- http:
path: /items
method: get
cors: true
接着,创建一个名为handler.js
的文件,并编写REST API的逻辑。
'use strict';
const express = require('express');
const serverless = require('serverless-http');
const MongoClient = require('mongodb').MongoClient;
const app = express();
const mongoUrl = process.env.MONGODB_URI;
app.get('/items', async (req, res) => {
const client = new MongoClient(mongoUrl, { useNewUrlParser: true, useUnifiedTopology: true });
try {
await client.connect();
const database = client.db('myDatabase');
const collection = database.collection('items');
const items = await collection.find({}).toArray();
res.json(items);
} catch (error) {
res.status(500).send(error.message);
} finally {
await client.close();
}
});
exports.api = serverless(app);
在这个例子中,我们创建了一个简单的Express应用程序,它提供了一个GET路由/items
,用于从MongoDB Atlas数据库中获取所有条目。每次API调用时,都会连接到MongoDB Atlas,执行查询,然后将结果返回给客户端。
确保将MONGODB_URI
环境变量替换为你的MongoDB Atlas连接字符串,并根据需要更改数据库名称和集合名称。
部署到Serverless Provider时,Serverless框架会自动处理请求的转发和资源的管理,使得开发者可以更专注于业务逻辑的实现。