
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
An Express middleware that turns your file directories into API endpoints
An Express middleware that turns your file directories into API endpoints.
Inspired by Next.js, so... thank you, next! (pun intended)
Install Express and Nexpresso:
yarn add express nexpresso
You first need to create a root directory (e.g. /server
) for your Nexpresso files. Then, as an example, to create GET /some/route
, you create the file /server/some/route/GET.js
. Inside GET.js
, you have to export a handler function like so:
// Example 1
// server/some/route/GET.js
const greet = (req, res) => {
return res.send('Hello world!');
};
module.exports = { handler: greet };
handler
can also be an array of handler functions, in case you wish to add middlewares:
// Example 2
// server/some/route/GET.js
const log = (req, res, next) => {
console.log('I am called!');
next();
};
const greet = (req, res) => {
return res.send('Hello world!');
};
module.exports = { handler: [log, greet] };
To set up nexpresso, simply import Nexpresso and pass it to app.use()
as a middleware.
const path = require('path');
const express = require('express');
const bodyParser = require('body-parser');
const nexpresso = require('nexpresso');
const app = express();
const port = 8080;
app.use(bodyParser.json());
// set up Nexpresso
app.use(
nexpresso({
pathToServer: path.join(__dirname, './server'),
})
);
app.listen(port, () => {
console.log(`Server now listening at port ${port}`);
});
To test, run the file locally and visit http://localhost:8080/some/route
. You should see "Hello World!" as a response.
For more use cases, see the tests and files in example
.
Finding the entry points to an Express route is often painful. In Nexpresso, finding your routes is easy because GET /some/route
is simply in the file /some/route/GET.js
.
In Express, by changing the order of routes, you can have middlewares affect parts of the app, which is a horrible design. Because you will then have middlewares defined hundreds of lines of code away or even worse, in other files. Nexpresso enforces that middlewares must either affect all endpoints (e.g. body-parser
) or only one endpoint (e.g. validation, authentication).
Nexpresso's design opens up opportunities for more features. For one, in addition to exporting a handler
, we could also export an OpenAPI json object. Then with express-openapi-validator, we could also provide validations for endpoints; with swagger-ui-express, we could serve the Swagger UI page.
FAQs
An Express middleware that turns your file directories into API endpoints
We found that nexpresso demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.