[英]How do I deploy REST API using an imported array of JS objects?
我一直在关注这篇文章以将 Node REST API 部署到 AWS,但我遇到了困难。 我已经设置了serverless.yml
来配置 AWS REST API。 正如您所看到的,它说明了这一点和一个 DynamoDB 表。
plugins:
- serverless-dynamodb-local
service: pair-api
provider:
name: aws
runtime: nodejs10.x
stage: dev
region: us-east-1
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- { "Fn::GetAtt": ["wineTable", "Arn"] }
environment:
WINE_TABLE: wineTable
resources: # CloudFormation template syntax
Resources:
wineTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: wineTable
AttributeDefinitions:
- AttributeName: name
AttributeType: S
KeySchema:
- AttributeName: name
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
functions:
app:
handler: index.handler
events:
- http: ANY /pair/wine
- http: "ANY {proxy+}"
我的index.js
文件(如下)应该用一组 JS 对象填充这个端点。 出于某种原因,当我将message
设置为test
(见下文)时,我收到错误消息“内部服务错误”。
const serverless = require("serverless-http");
const bodyParser = require("body-parser");
const express = require("express");
const app = express();
import * as test from "./db/test";
app.use(bodyParser.json({ strict: false }));
app.get("/pair/wine", function(req, res) {
res.send({
success: "true",
message: test
});
});
module.exports.handler = serverless(app);
当我将消息设置为 JavaScript 对象时(见下文),我的 AWS API 端点返回正确的消息。
const serverless = require("serverless-http");
const bodyParser = require("body-parser");
const express = require("express");
const app = express();
import * as test from "./db/test";
app.use(bodyParser.json({ strict: false }));
app.get("/pair/wine", function(req, res) {
res.send({
success: "true",
message: [{
"test": true,
"testing": "Test"
}]
});
});
module.exports.handler = serverless(app);
为 AWS API 设置GET
请求以返回一组 JS 对象的正确方法是什么? 我试过以几种不同的方式导入 JS 文件(见下文),但似乎没有任何效果;
import * as test from "./db/test";
import test from "./db/test";
const test = require("./db/test");
结果我需要阅读在 Node 中导入模块的内容,它利用 ES5 的 require 语句而不是 import。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.