AWS Lambda / Nodejsでアレイにデータを入力できないようです

ジェイソン

https://github.com/serverless/examples/blob/master/aws-node-rest-api-with-dynamodb/todos/create.jsのサーバーレスコードを使用していますが、配列または追加を追加しようとすると私の関数への文字列は空の配列を返します(27行目)。

私はnodejsとawsに不慣れです助けてください

'use strict';

const uuid = require('uuid');
const AWS = require('aws-sdk'); // eslint-disable-line import/no- 
extraneous-dependencies

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports.create = (event, context, callback) => {
  const timestamp = new Date().getTime();
  const data = JSON.parse(event.body);
  if (typeof data.text !== 'string') {
    console.error('Validation Failed');
    callback(null, {
      statusCode: 400,
      headers: { 'Content-Type': 'text/plain' },
      body: 'Couldn\'t create the todo item.',
    });
    return;
  }

  const params = {
    TableName: process.env.DYNAMODB_TABLE,
    Item: {
      id: uuid.v1(),
      text: data.text,

      list: [],  //i am unsure how to populate this with json
      newString: "", //along with this string

      createdAt: timestamp,
      updatedAt: timestamp,
    },
  };

  // write the todo to the database
  dynamoDb.put(params, (error) => {
    // handle potential errors
    if (error) {
      console.error(error);
      callback(null, {
        statusCode: error.statusCode || 501,
        headers: { 'Content-Type': 'text/plain' },
        body: 'Couldn\'t create the todo item.',
      });
      return;
    }

// create a response
const response = {
  statusCode: 200,
  body: JSON.stringify(params.Item),
};
callback(null, response);
  });
};

このjsonで郵便配達員に投稿するとき。配列は空の文字列を返します。いつ人口を増やしたいか

{
     "text": "hello",
     "list": [1,3,4],
     "newString": "hello2"
}
NItin Vaja

私はリスト値を推測しています、そしてnewStringはあなたのリクエスト本文から来ています

const data = JSON.parse(event.body); // <-- This value is sent in a post request

たとえば、次の本文を含むPOSTリクエストを送信できます。

{
    "list": ['ABC', "DEF", "IJK"],
    "newString": "Hello",
    "text": "hello",
}

したがって、新しいコードは次のようになります。

'use strict';

const uuid = require('uuid');
const AWS = require('aws-sdk'); // eslint-disable-line import/no-extraneous-dependencies

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports.create = (event, context, callback) => {
  const timestamp = new Date().getTime();
  const data = JSON.parse(event.body);
  if (typeof data.text !== 'string') {
    console.error('Validation Failed');
    callback(null, {
      statusCode: 400,
      headers: { 'Content-Type': 'text/plain' },
      body: 'Couldn\'t create the todo item.',
    });
    return;
  }

  const params = {
    TableName: process.env.DYNAMODB_TABLE,
    Item: {
      id: uuid.v1(),
      text: data.text,

      list: data.list,  // This is now the value from your post request.
      newString: data.newString, // Same as above.

      createdAt: timestamp,
      updatedAt: timestamp,
    },
  };

  // write the todo to the database
  dynamoDb.put(params, (error) => {
    // handle potential errors
    if (error) {
      console.error(error);
      callback(null, {
        statusCode: error.statusCode || 501,
        headers: { 'Content-Type': 'text/plain' },
        body: 'Couldn\'t create the todo item.',
   });

   // I have also moved the callback inside the put request as you should only return the data once you are sure that the data has been added to the DB.
   callback(null, {
      statusCode: 200,
      body: JSON.stringify(params.Item),
   });
}

お役に立てれば。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AWS Lambda / Nodejsでアレイにデータを入力できないようです

分類Dev

AWS Lambda Pythonレイヤーを作成するにはどうすればよいですか?(XGBoostでの使用例)

分類Dev

AWS Lambda Pythonレイヤーを作成するにはどうすればよいですか?(XGBoostでの使用例)

分類Dev

APIGateway統合を使用してNodejs AWS LambdaのPOSTパラメーターにアクセスするにはどうすればよいですか?

分類Dev

aws_lambda_aliasrouting_config内でaws_lambda_functionデータソースを使用できないのはなぜですか?

分類Dev

AWS lambda関数でURLパラメーターを取得するにはどうすればよいですか?

分類Dev

AWS-lambdaを使用してjsonデータからcsvファイルを作成するにはどうすればよいですか?

分類Dev

AWS Lambda nodejsランタイムの単一のjsファイルを作成するにはどうすればよいですか?

分類Dev

AWS LambdaからのAWSPersonalizeリアルタイムキャンペーン呼び出しを使用するにはどうすればよいですか?

分類Dev

AWS LambdaとAWS Lambda @ EDGEの違いは何ですか?

分類Dev

AWS Lambdaに複数のAWSパラメータストアの値をキャッシュするにはどうすればよいですか?

分類Dev

AWS Lambda:Pythonユーザー入力は可能ですか?

分類Dev

AWS Lambdaでグローバルにアクセスできないのはなぜですか

分類Dev

AWS Lambda:AWS LambdaのIPホワイトリストを使用するサービスに接続するにはどうすればよいですか?

分類Dev

AWS Lambdaにプリインストールされている信頼できるCAを確認するにはどうすればよいですか?

分類Dev

AWS Lambdaにプリインストールされている信頼できるCAを確認するにはどうすればよいですか?

分類Dev

AWS Lambda で、関数のモジュールをインポートできないのはなぜですか?

分類Dev

AWS Lambda WebコンソールのCloud9コードエディターを使用してCustomerProfile APIにアクセスできますか?もしそうなら、どのように?

分類Dev

Lambdaでnodejsのaws-sdkでputParameterを使用して過去のエラーを取得するにはどうすればよいですか?

分類Dev

AWS Lambda NodeJS Connect to RDS Postgres Database

分類Dev

AWS Lambda NodeJS-OAuth to Google API

分類Dev

AWS Lambda - VPC で SQL Server RDS に接続できない

分類Dev

AWSでLambda関数をデプロイできません

分類Dev

AWS Lambda Java、MySQLRDSに接続

分類Dev

AWS Lambda Java、MySQLRDSに接続

分類Dev

AWS Lambda GoLangエラー

分類Dev

AWS Lambda +サーバーレス、バンドルできなかったjsモジュールをどこに/どのようにデプロイしますか?

分類Dev

AWS Lambda Python 3.6環境でaws-cliを実行するにはどうすればよいですか?

分類Dev

AWS Lambdaを使用して無限のWebSocketデータソースを受信するにはどうすればよいですか?

Related 関連記事

  1. 1

    AWS Lambda / Nodejsでアレイにデータを入力できないようです

  2. 2

    AWS Lambda Pythonレイヤーを作成するにはどうすればよいですか?(XGBoostでの使用例)

  3. 3

    AWS Lambda Pythonレイヤーを作成するにはどうすればよいですか?(XGBoostでの使用例)

  4. 4

    APIGateway統合を使用してNodejs AWS LambdaのPOSTパラメーターにアクセスするにはどうすればよいですか?

  5. 5

    aws_lambda_aliasrouting_config内でaws_lambda_functionデータソースを使用できないのはなぜですか?

  6. 6

    AWS lambda関数でURLパラメーターを取得するにはどうすればよいですか?

  7. 7

    AWS-lambdaを使用してjsonデータからcsvファイルを作成するにはどうすればよいですか?

  8. 8

    AWS Lambda nodejsランタイムの単一のjsファイルを作成するにはどうすればよいですか?

  9. 9

    AWS LambdaからのAWSPersonalizeリアルタイムキャンペーン呼び出しを使用するにはどうすればよいですか?

  10. 10

    AWS LambdaとAWS Lambda @ EDGEの違いは何ですか?

  11. 11

    AWS Lambdaに複数のAWSパラメータストアの値をキャッシュするにはどうすればよいですか?

  12. 12

    AWS Lambda:Pythonユーザー入力は可能ですか?

  13. 13

    AWS Lambdaでグローバルにアクセスできないのはなぜですか

  14. 14

    AWS Lambda:AWS LambdaのIPホワイトリストを使用するサービスに接続するにはどうすればよいですか?

  15. 15

    AWS Lambdaにプリインストールされている信頼できるCAを確認するにはどうすればよいですか?

  16. 16

    AWS Lambdaにプリインストールされている信頼できるCAを確認するにはどうすればよいですか?

  17. 17

    AWS Lambda で、関数のモジュールをインポートできないのはなぜですか?

  18. 18

    AWS Lambda WebコンソールのCloud9コードエディターを使用してCustomerProfile APIにアクセスできますか?もしそうなら、どのように?

  19. 19

    Lambdaでnodejsのaws-sdkでputParameterを使用して過去のエラーを取得するにはどうすればよいですか?

  20. 20

    AWS Lambda NodeJS Connect to RDS Postgres Database

  21. 21

    AWS Lambda NodeJS-OAuth to Google API

  22. 22

    AWS Lambda - VPC で SQL Server RDS に接続できない

  23. 23

    AWSでLambda関数をデプロイできません

  24. 24

    AWS Lambda Java、MySQLRDSに接続

  25. 25

    AWS Lambda Java、MySQLRDSに接続

  26. 26

    AWS Lambda GoLangエラー

  27. 27

    AWS Lambda +サーバーレス、バンドルできなかったjsモジュールをどこに/どのようにデプロイしますか?

  28. 28

    AWS Lambda Python 3.6環境でaws-cliを実行するにはどうすればよいですか?

  29. 29

    AWS Lambdaを使用して無限のWebSocketデータソースを受信するにはどうすればよいですか?

ホットタグ

アーカイブ