DynamoDB:ValidationException:一个或多个参数值无效:缺少项目中的关键电子邮件
DynamoDB: ValidationException: One or more parameter values were invalid: Missing the key email in the item
我是 Dynamodb 的新手。我创建了一个 DynamoDB table。通过使用 dynamodb-npm 并进行验证,我使用 joi
。我很困惑,面临几个问题。首先,当我检查我的 AWS 的 Dynamodb 仪表板时,我没有看到内容和标签项目,即使它在我的模式中,。然后我尝试使用 Postman () post 数据到我的 Blogpost 数据库。但是我收到这样的错误:ValidationException: One or more parameter values were invalid: Missing the key email in the item
。
这是我的 dynamoDb 设置
var dynamo = require("dynamodb");
const Joi = require("joi");
dynamo.AWS.config.update({
accessKeyId: "AKIAIBJS4SX3SWW**",
secretAccessKey: "8O1dsZrIM43q8OF4kO/lMToW**",
region: "us-east-1"
});
var BlogPost = dynamo.define("BlogPost", {
hashKey: "email",
rangeKey: "title",
schema: {
email: Joi.string().email(),
title: Joi.string(),
content: Joi.binary(),
tags: dynamo.types.stringSet()
}
});
dynamo.createTables(function(err) {
if (err) {
console.log("Error creating tables: ", err);
} else {
console.log("Tables has been created");
}
});
module.exports = BlogPost;
这是我的快递服务器
const express = require("express");
const app = express();
const BlogPost = require("./db");
app.post("/post", async (req, res, next) => {
try {
const logs = new BlogPost(req.body);
const entry = await logs.save();
res.json(entry);
} catch (error) {
if (error.name === "ValidationError") {
res.status(422);
}
next(error);
}
});
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(` App is listening at port ${port}!`));
您的 req.body
不包含 email
属性 或 属性 是一个空字符串。
为您的快速服务器申请 body-parser
,例如:
...
var bodyParser = require('body-parser');
const app = express();
// parse application/json
app.use(bodyParser.json())
...
我是 Dynamodb 的新手。我创建了一个 DynamoDB table。通过使用 dynamodb-npm 并进行验证,我使用 joi
。我很困惑,面临几个问题。首先,当我检查我的 AWS 的 Dynamodb 仪表板时,我没有看到内容和标签项目,即使它在我的模式中,ValidationException: One or more parameter values were invalid: Missing the key email in the item
。
这是我的 dynamoDb 设置
var dynamo = require("dynamodb");
const Joi = require("joi");
dynamo.AWS.config.update({
accessKeyId: "AKIAIBJS4SX3SWW**",
secretAccessKey: "8O1dsZrIM43q8OF4kO/lMToW**",
region: "us-east-1"
});
var BlogPost = dynamo.define("BlogPost", {
hashKey: "email",
rangeKey: "title",
schema: {
email: Joi.string().email(),
title: Joi.string(),
content: Joi.binary(),
tags: dynamo.types.stringSet()
}
});
dynamo.createTables(function(err) {
if (err) {
console.log("Error creating tables: ", err);
} else {
console.log("Tables has been created");
}
});
module.exports = BlogPost;
这是我的快递服务器
const express = require("express");
const app = express();
const BlogPost = require("./db");
app.post("/post", async (req, res, next) => {
try {
const logs = new BlogPost(req.body);
const entry = await logs.save();
res.json(entry);
} catch (error) {
if (error.name === "ValidationError") {
res.status(422);
}
next(error);
}
});
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(` App is listening at port ${port}!`));
您的 req.body
不包含 email
属性 或 属性 是一个空字符串。
为您的快速服务器申请 body-parser
,例如:
...
var bodyParser = require('body-parser');
const app = express();
// parse application/json
app.use(bodyParser.json())
...