Home ci 38. functions / runtimes: node js

38. functions / runtimes: node js

Last updated on Aug 05, 2025

Using Node.js with Epycbyte Functions: A Comprehensive Guide

Epycbyte Functions provide a powerful way to deploy and run Node.js applications. This guide will walk you through the process of creating, configuring, and optimizing your Node.js functions on the Epycbyte platform.

Creating Your First Node.js Function

Starting your journey with Node.js on Epycbyte is straightforward. Begin by logging in to the Epycbyte dashboard and navigating to the "Functions" section. Clicking "Create Function" will prompt you to name your function and select the runtime environment as Node.js.

Key Considerations:

  • Runtime Environment: Ensure the correct Node.js version is selected based on your project requirements.
  • Execution Timeout: Set an appropriate timeout to prevent long-running tasks from affecting performance.

Configuring Your Function

After creating your function, you can adjust its configuration settings. The "Configuration" tab allows you to set environment variables and enable debugging, which is essential for troubleshooting.

Environment Variables:

  • Use process.env to access custom configurations.
  • Example:
    const config = process.env.EPYCBYTE_CONFIG || {};
    

TypeScript Support

Epycbyte Functions support TypeScript, making it easier to manage complex logic. Install TypeScript and its type definitions using npm:

npm install --save-dev @types/node typescript

Configuration File (tsconfig.json)

Ensure your tsconfig.json includes the following settings:

  • "target": "es6" for compatibility.
  • "module": "commonjs" to handle module resolution correctly.

Request and Response Objects

In Node.js, each function receives a standard HTTP request and response object. These objects provide access to query parameters, cookies, and body data.

Accessing Data:

  • Query Parameters:
    const query = request.query;
    
  • Body Data:
    try {
      const body = request.body;
    } catch (error) {
      // Handle parsing errors
    }
    

## Advanced Request Handling

For more complex applications, consider using Express.js. Epycbyte provides a guide on integrating Express with their platform, allowing you to leverage middleware and routing features.

### Example Route Handler:
```javascript
const express = require('express');
const router = express.Router();
router.get('/hello', (req, res) => {
  res.send('Hello, World!');
});

Error Handling

Implementing robust error handling is crucial. Use try-catch blocks and custom error classes to manage exceptions gracefully.

Custom Error Class:

class CustomError extends Error {
  constructor(message) {
    super(message);
    this.name = 'CustomError';
  }
}

Performance Optimization

Epycbyte offers tools to optimize your functions, such as bytecode caching and memory optimization. These features help in scaling your applications efficiently.

Bytecode Caching:

  • Enable bytecode caching to store compiled code, reducing runtime overhead.

Conclusion