Yume is a lightweight web framework designed to build efficient API servers. It achieves this by leveraging the power of uWebSockets.js, a high-performance WebSocket library for Node.js.
npm i yume-server
- Hello Yume (夢)
- Applying middleware
- Dynamic Routes
- Query Parameter
- Multipart upload
- cors
- Handling 404 route
- Handling globle error
const yume = new Yume();
const PORT = process.env.PORT || 8080;
yume.get("/", (req, res) => {
res.json({ hello: "Yume 夢" });
});
yume.listen(8080, () => {
console.log(`>started @${PORT}`);
});
yume.use((req, res, next) => {
console.log("Hello from middleware");
next();
});
yume.get("/post/:id", async (req, res) => {
const { id } = req.getParams();
return res.json({ id });
});
// ?page=2&limit=3
yume.get("/post", async (req, res) => {
const { page, limit } = req.query();
return res.json({ page, limit });
});
yume.post("/upload", async (req, res) => {
const filesArray = await req.file();
filesArray?.map((file: MultipartField) => {
// do something magical
});
res.json({ status: true, msg: "file uploaded successfully", data: {} });
});
yume.use((req, res, next) => {
const origin = "https://example.com";
res.writeHeader("Access-Control-Allow-Origin", origin);
res.writeHeader("Access-Control-Allow-Methods", "GET, POST");
next();
});
yume.notFound((req, res) => {
res.status(404).end("Not found");
});
yume.error((err, req, res) => {
console.error(err);
res.status(500).end("Internal server error");
});
Licensed under MIT License.