--- title: "Records" description: "Learn how Aerospike records work and why the Node.js client requires string keys to avoid data conversion errors." --- # Records > For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt) > > All documentation pages available in markdown. ## Using Records In Aerospike, a record represents the data stored in the database. A record is composed of metadata and bins. Bins hold the record data. Each bin has a name and a value. Metadata is additional information about the record. Records are found in the database using keys. ## Using Records as Javascript Objects The Aerospike Node.js Client uses JavaScript objects to represent records and maps in Aerospike. JavaScript objects require property names to be strings. Aerospike map keys can be of type List, String, Bytes, Integer, or Double. Since JavaScript objects are limited to string keys, reading a record containing a non-string key causes the key to be converted to a string when converted to a Node.js object. We recommend developers only use string keys when using the Node.js Client to avoid any conversion errors. If Aerospike Clients from other languages are in use, ensure these clients also use strictly string keys.