Node Setup
Install with an AI Agent
Copy a prompt for Claude Code, Cursor, or any AI coding assistant.
Install Scout APM in this Node.js application:
1. npm install @scout_apm/scout-apm
2. Create a scout.js file (scout.ts for TypeScript):
const { init } = require("@scout_apm/scout-apm");
init({ name: process.env.SCOUT_NAME || "my-app", key: process.env.SCOUT_KEY, monitor: true });
3. Add require("./scout") as the very first line of the app entry point — before any other requires
4. Express: add app.use(expressMiddleware({ requestTimeoutMs: 0 })) after creating the app, app.use(errorMiddleware()) after routes
5. NestJS: add app.use(nestMiddleware({ requestTimeoutMs: 0 })) and app.useGlobalFilters(nestErrorFilter()) in bootstrap()
See https://scoutapm.com/docs/node/setup for the full setup guide.
Scout supports Express 4.x+.
AInstall the @scout_apm/scout-apm package:
npm install @scout_apm/scout-apm
BCreate a scout.js file and require it before anything else in your entry point:
Important:
scout.js must be the very first require in your app so Scout's hooks are installed before any other packages load. Scout automatically detects all installed libraries — no manual package list needed.
// scout.js
const { init } = require("@scout_apm/scout-apm");
init({
name: process.env.SCOUT_NAME || "my-express-app",
key: process.env.SCOUT_KEY,
monitor: true,
});
// app.js
require("./scout"); // must be first
const express = require("express");
const { expressMiddleware, errorMiddleware } = require("@scout_apm/scout-apm");
const app = express();
app.use(expressMiddleware({ requestTimeoutMs: 0 }));
// ... your routes ...
app.use(errorMiddleware());
app.listen(3000);
CConfigure Scout via environment variables:
export SCOUT_MONITOR=true
export SCOUT_KEY="[AVAILABLE IN THE SCOUT UI]"
export SCOUT_NAME="A FRIENDLY NAME FOR YOUR APP"
Heroku Customers: If you've installed Scout via the Heroku Addon, the provisioning process automatically sets
SCOUT_MONITOR and SCOUT_KEY via config vars. Only SCOUT_NAME is additionally required.
DDeploy.
It takes approximately five minutes for your data to first appear within the Scout UI.
Scout supports NestJS 10.x+.
AInstall the @scout_apm/scout-apm package:
npm install @scout_apm/scout-apm
BCreate a scout.ts file and require it before NestJS loads:
Important: TypeScript
import statements are hoisted. require("./scout") must come before any NestJS or database imports in main.ts. Only side-effect-free imports like reflect-metadata are safe above it.
// scout.ts
const { init } = require("@scout_apm/scout-apm");
init({
name: process.env.SCOUT_NAME || "my-nestjs-app",
key: process.env.SCOUT_KEY,
monitor: true,
});
// main.ts
import "reflect-metadata"; // safe — no instrumented packages
require("./scout"); // must come before NestJS loads
const { NestFactory } = require("@nestjs/core");
const { AppModule } = require("./app.module");
const { nestMiddleware, nestErrorFilter } = require("@scout_apm/scout-apm");
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(nestMiddleware({ requestTimeoutMs: 0 }));
app.useGlobalFilters(nestErrorFilter());
await app.listen(3000);
}
bootstrap();
CConfigure Scout via environment variables:
export SCOUT_MONITOR=true
export SCOUT_KEY="[AVAILABLE IN THE SCOUT UI]"
export SCOUT_NAME="A FRIENDLY NAME FOR YOUR APP"
Heroku Customers: If you've installed Scout via the Heroku Addon, the provisioning process automatically sets
SCOUT_MONITOR and SCOUT_KEY via config vars. Only SCOUT_NAME is additionally required.
DDeploy.
It takes approximately five minutes for your data to first appear within the Scout UI.