title: NodeJS - ERR_INVALID_ARG_TYPE Error thrown while issuing a HTTP request to remote host
body: <p>Recently, I encountered a problem while trying to issue a request using NodeJS and <a href="https://www.npmjs.com/package/request-promise" rel="nofollow noreferrer">request-promise</a>.</p>
  
  <p>The following code is nested inside a multer call for file uploading (using nested functions / clusters.</p>
  
  <pre><code>    const options = {
          method: 'POST',
          uri: 'URL of your choice',
          body: {
              //Body of the request
          },
          // json: true,
          headers: {
              // 'Content-Type': 'application/x-www-form-urlencoded',
          },
      }
  
      request(options)
          .then(function (response) {
              console.log('Response: ', response);
  
          })
          .catch(function (err) {
              console.log('Error: ', err);
          });
  </code></pre>
  
  <p>While using the current request, without the  'json: true' property (commented out), I get the following error:</p>
  
  <pre><code>TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string or Buffer. Received type object
      at write_ (_http_outgoing.js:603:11)
      at ClientRequest.write (_http_outgoing.js:575:10)
      at Request.write (PATH/node_modules/request/request.js:1500:27)
      at end (PATH/node_modules/request/request.js:549:18)
      at Immediate.&lt;anonymous&gt; (PATH/node_modules/request/request.js:578:7)
      at runCallback (timers.js:696:18)
      at tryOnImmediate (timers.js:667:5)
      at processImmediate (timers.js:649:5)
      at process.topLevelDomainCallback (domain.js:121:23)
  </code></pre>
  
  <p>And when I turn the 'json: true' option on, the problem doesn't occur, but the remote API returns an error as it doesn't handle JSON requests/their added curly braces well.</p>
  
  <p>Any ideas about getting over this issue?</p>
  
  <p>Thank you.</p>