Node.js
You should define a main module as the entry point of your Node.js application. Your Node.js code should be linted using ESLint with the recommended configuration for Node.js.
Entry file
The entry file for this template must be one of the following: index.js, server.js or app.js. The first one present is used as the entry point.
Server configuration for API Tester
For API challenges, ensure your server is started from the entry file so it is running when you use the API Tester tab. The API Tester is available for Node.js templates to send requests and test your endpoints.
Example with Express:
const express = require('express');
const app = express();
// Define your routes, then listen on your chosen port
app.listen(3000, () => {
console.log('Server running');
});Example with the built-in HTTP server:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Hello World!' }));
});
server.listen(3000, () => {
console.log('Server running');
});Version
Running on Node.js v20.0.0
Supported languages
Javascript
Testing framework
Special reminders and implementation details
const { getMessage } = require("./index");
describe("App", () => {
test("should return 'Hello world!'", () => {
const message = "Hello World!";
expect(getMessage(message)).toEqual("Hello World!");
});
});Included libraries
Write-tests challenges
This template supports write-tests challenges. The reference solution is already written and you write the tests: they must pass on the reference solution and catch every hidden buggy variant. Test runs your tests against the reference solution only, while Verify tests and Submit also run them against the hidden buggy variants. Read Solving a write-tests challenge for the full flow.
- Test runner: Jest
- Tests are plain CommonJS:
requirethe solution module the same waymain.jsdoes, for exampleconst { sum } = require('./sum');. - Name test files
*.test.jsand keep them next to the reference solution, so the samerequireloads the real implementation, or a buggy variant during verification. - Use Run on
main.jsto call the function and log values while you explore it.
A complete example is in Write-tests examples by template.
How to debug
Debugging JavaScript code is a crucial skill for any developer. One of the simplest yet effective ways to debug is by using console.log() statements.
Steps to Debug Using Console Logs
Identify the Problem Area Locate the section of your code where you suspect the problem might be.
Insert
console.log()Statements Addconsole.log()statements before and after the suspected problematic code to print out variable values and flow control.Check the Results Output of your tests
Analyze the Output Look at the values printed in the console to understand what's going wrong in your code. Adjust your code based on the findings and repeat as necessary.
Here’s an example of how to use console.log() for debugging:
JavaScript Code
function calculateSum(a, b) {
console.log("calculateSum called with arguments:", a, b); // Log function call
let sum = a + b;
console.log("Sum after addition:", sum); // Log sum calculation
return sum;
}
let result = calculateSum(5, 10);
console.log("Result of calculateSum:", result); // Log the result