
免費API攔截工具入門指南:初學者必備教程與實用技巧
cd aws-lambda-express-demo
aws-lambda-express-demo
文件夾中創建一個文件 app.js
: touch app.js
npm
從注冊表下載最新版本的 express
包,并將其存儲在項目根目錄的 node_modules
文件夾中。所有的包依賴項也將安裝并存儲在該文件夾中: npm install express
serverless-http
的中間件框架,這是一個用于創建無服務器應用程序的庫。AWS Lambda 允許正常編寫應用程序,然后將其包裝在通過 HTTP 請求導出和執行的函數周圍。serverless-http
也與 Azure、Google Cloud 等無服務器提供商兼容: npm install serverless-http
如果需要,可以通過以下命令全局安裝 serverless-http
: npm install -g serverless-http
以下是使用 Node.js 實現 GET
、POST
、DELETE
和 PUT
方法的 Express.js 框架實現的 RESTful API 示例:
const express = require('express');
const app = express();
const serverless = require('serverless-http');
const users = [
{ id: 1, name: 'John', company: "ABC Company" },
{ id: 2, name: 'Frank', company: "XYZ Inc." },
{ id: 3, name: 'Ashley', company: "123 Company" },
];
app.use(express.json());
app.get('/users', (req, res) => {
res.json(users);
});
app.get('/users/:id', (req, res) => {
const user = users.find(user => user.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ message: 'User not found' });
res.json(user);
});
app.post('/users', (req, res) => {
const user = {
id: users.length + 1,
name: req.body.name,
company: req.body.company,
};
users.push(user);
res.json(user);
});
app.delete('/users/:id', (req, res) => {
const userIndex = users.findIndex(user => user.id === parseInt(req.params.id));
if (userIndex === -1) return res.status(404).json({ message: 'User not found' });
users.splice(userIndex, 1);
res.json({ message: 'User deleted' });
});
app.put('/users/:id', (req, res) => {
let user = users.find(user => user.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ message: 'User not found' });
user.name = req.body.name;
user.company = req.body.company;
res.json(user);
});
const handler = serverless(app);
const startServer = async () => {
app.listen(3000, () => {
console.log("listening on port 3000!");
});
};
startServer();
module.exports.handler = (event, context, callback) => {
const response = handler(event, context, callback);
return response;
};
上述代碼創建了一個 Express.js 應用程序,并為 GET
、POST
、DELETE
和 PUT
方法添加了路由。應用程序使用內存中的 users
數組來存儲數據,并使用 find
和 findIndex
方法根據 URL 中提供的 ID 檢索和更新用戶。需要注意的是,對于 POST
和 PUT
路由,需要解析請求正文,這可以通過 express.json()
中間件來完成。
在代碼的末尾,startServer
函數啟動了本地服務器,而 module.exports.handler
函數將 Lambda 事件處理程序與 Express 應用程序連接起來。
通過運行以下命令來啟動服務器:
node app.js
服務器啟動后,API 將開始運行。可以使用 Postman 發送測試 HTTP 請求。向 localhost:3000/users
發送請求時,應該會看到 200 OK
狀態代碼。此測試不需要請求正文。
原文鏈接:Building a RESTful API With AWS Lambda and Express