A custom n8n trigger node that allows users to visually configure Express.js microservices that trigger workflow executions on HTTP requests.
This node is now a true trigger node where each HTTP request starts a new workflow execution, not just a regular node that processes requests.
- 🚀 Dynamic Express Server: Create HTTP endpoints on-the-fly
- 🎯 Workflow Triggering: Each HTTP request triggers a new workflow execution
- 🎛️ Visual Configuration: Configure routes, methods, and responses through n8n UI
- 🔧 Port Management: Automatic port availability checking with hot-reload
- 📊 Multiple HTTP Methods: Support for GET, POST, PUT, PATCH, DELETE
- 🔒 Security: Built-in authentication options (Basic Auth, API Key)
- 🔄 n8n Integration: Full trigger integration with request data emission
- 📡 Real-time Processing: Perfect for webhooks and event-driven workflows
-
Clone the repository
git clone <repository-url> cd n8n-express-microservice-node
-
Install dependencies
npm install
-
Build the project
npm run build
-
Install in n8n
- Copy the built node to your n8n custom nodes directory
- Restart n8n to load the new node
npm run build
npm run dev
npm test
npm run lint
├── nodes/
│ └── ExpressServerNode/
│ ├── ExpressServerNode.node.ts # Main node implementation
│ └── ExpressServerNode.node.json # Node metadata
├── test/ # Test files
├── dist/ # Built files
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
- Add the node to your n8n workflow
- Configure the port where the Express server should run
- Define HTTP methods with their routes and responses
- Activate the workflow to start the Express server
- Make HTTP requests to the configured endpoints
{
"port": 3001,
"methods": [
{
"name": "/health",
"httpMethod": "GET",
"successCode": 200,
"failureCode": 500,
"contentType": "application/json",
"outputMapping": "{\"status\":\"ok\"}"
}
]
}
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT