AWS node.js not creating S3 bucket?

I'm trying to use the basic tutorial to create an S3 bucket as follows

var AWS = require('aws-sdk');

AWS.config.loadFromPath('./myawsconfig.json');
AWS.config.update({region: 'eu-west-1'});

var s3 = new AWS.S3();
s3.client.createBucket({Bucket: 'pBucket'}, function() {
  var data = {Bucket: 'pBucket', Key: 'myKey', Body: 'Hello!'};
  s3.client.putObject(data, function(err, data) {
    if (err) {
      console.log("Error uploading data: ", err);
    } else {
      console.log("Successfully uploaded data to myBucket/myKey");
    }
  });
});

But I'm receiving the following error

node createbucket.js
Error uploading data:  { [NoSuchBucket: The specified bucket does not exist]
  message: 'The specified bucket does not exist',
  code: 'NoSuchBucket',
  name: 'NoSuchBucket',
  statusCode: 404,
  retryable: false }

I just ran into this problem, apparently the Node.js tutorial code doesn't compile. I got a var Object doesn't have createBucket method.

This worked:

var AWS = require('aws-sdk');
AWS.config.loadFromPath('./credentials.json');
// Set your region for future requests.
AWS.config.update({region: 'us-east-1'});
// Create a bucket and put something in it.
var s3 = new AWS.S3();
s3.client.createBucket({Bucket: 'hackathon-test'}, function() {
  var data = {Bucket: 'hackathon-test', Key: 'myKey', Body: 'Hello!'};
  s3.client.putObject(data, function(err, data) {
    if (err) {
      console.log("Error uploading data: ", err);
    } else {
      console.log("Successfully uploaded data to myBucket/myKey");
    }
  });
});

I had this issue, discovering that my api-user didn't have permission to create the bucket.

Slightly more thorough error checking revealed this...

s3.client.createBucket({Bucket: 'someBucket'}, function(err) {
    if (err) {
      console.log("Error creating bucket: ", err);
    } else {
      console.log("Successfully created bucket 'someBucket'");
    }
// ...