"Simplicity is the soul of efficiency." - Austin Freeman
In grading this test, we're looking for clarity, efficiency, and a solid understanding of Node.js principles. Remember, the beauty of Node.js lies in its simplicity and power. Let's see how well you've harnessed it.
Setup and Initialization (20 points) Proper initialization of a Node.js project (5 points) Correct use of npm init and package.json setup. Correct installation and setup of required packages (15 points) Proper use of npm install. Correct versioning and package management. Database Mock (20 points) Proper structure of the books array (10 points) Array initialization and data type consistency. Correct structure for book objects (10 points) Proper use of object properties and data types. Error Handling (15 points) Proper handling of invalid routes (5 points) Use of middleware or route handling to catch undefined routes. Proper handling of invalid methods (5 points) Handling unsupported HTTP methods for defined routes. Correct error handling for non-existent books in relevant endpoints (5 points) Proper status codes and error messages. Readability and clarity of code (2.5 points) Proper indentation, naming conventions, and comments. Proper use of asynchronous programming where necessary (2.5 points) Use of callbacks, promises, or async/await where appropriate.