Javascript Aws dynamodb错误[未知错误]:未找到(Aws sdk)
我正在尝试在dynamodb的表中添加元素,如下面的示例所示,但运行时收到以下错误消息:Javascript Aws dynamodb错误[未知错误]:未找到(Aws sdk),javascript,node.js,amazon-web-services,amazon-dynamodb,Javascript,Node.js,Amazon Web Services,Amazon Dynamodb,我正在尝试在dynamodb的表中添加元素,如下面的示例所示,但运行时收到以下错误消息: Error Error [UnknownError]: Not Found at Request.extractError (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\protocol\json.js:51:27) at Request.callListeners (C:\U
Error Error [UnknownError]: Not Found
at Request.extractError (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\protocol\json.js:51:27)
at Request.callListeners (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\sequential_executor.js:106:20)
at Request.emit (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\sequential_executor.js:78:10)
at Request.emit (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\request.js:688:14)
at Request.transition (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\request.js:22:10)
at AcceptorStateMachine.runTo (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\state_machine.js:14:12)
at C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\state_machine.js:26:10
at Request.<anonymous> (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\request.js:38:9)
at Request.<anonymous> (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\request.js:690:12)
at Request.callListeners (C:\Users\caval\Documents\GitRepos\express-es6-rest-api\node_modules\aws-sdk\lib\sequential_executor.js:116:18) {
message: 'Not Found',
code: 'UnknownError',
statusCode: 404,
time: 2020-07-05T08:21:43.936Z,
requestId: undefined,
retryable: false,
retryDelay: 38.04958058577693
}
编辑:问题是我没有使用本地版本,因此我需要删除属性
端点
此404未找到错误是从http://localhost:8080
您确定DynamoDB local正在运行吗?如果是,您是否已将其设置为在端口8080
上运行
根据上的文档,默认情况下,DynamoDB local在端口8000
上运行
附加说明
与OP讨论后,DynamoDB local未在其主机上设置,这是导致404问题的原因。此404未找到错误是从
http://localhost:8080
您确定DynamoDB local正在运行吗?如果是,您是否已将其设置为在端口8080
上运行
根据上的文档,默认情况下,DynamoDB local在端口8000
上运行
附加说明
与OP讨论后,DynamoDB local没有安装在他们的主机上,这就是导致404问题的原因。事实是我没有在本地下载DynamoDB,我试图在不下载itI的情况下使用它,我的意思是我正在创建一些api,因此localhost:8000应该只是关于api而不是DynamoDB本地主机是用于本地DynamoDB的,这是在您的主机上本地运行数据库:)嗯,但是aws sdk不应该只将我连接到aws db?如果您不想在本地运行它,那么您可以使用IAM密钥、IAM密钥和aws系统内的DynamoDB名称进行连接(可通过控制台或CLI检索)。事实上,我没有在本地下载DynamoDB,我试图在不下载itI的情况下使用它,我的意思是我正在创建一些api,因此localhost:8000应该只是关于api而不是DynamoDB本地主机是用于本地DynamoDB的,这是在您的主机上本地运行数据库:)嗯,但是aws sdk不应该只将我连接到aws db?如果您不想在本地运行它,那么您可以使用IAM密钥、IAM密钥和aws系统内的DynamoDB名称进行连接(可通过控制台或CLI检索)。
let ddb = new AWS.DynamoDB({
apiVersion: "2012-08-10",
endpoint: "http://localhost:8080",
region: "eu-west-1",
accessKeyId: AWS.config.credentials.accessKeyId,
secretAccessKey: AWS.config.credentials.secretAccessKey,
});
let params = {
TableName: "namOfTheTable",
Item: {
uuid: { N: "123" },
name: { S: JSON.stringify(req.query.mod) },
},
};
const addMod = ddb.putItem(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});