@plaoc/server/middlewares
Utilize middleware services in the Dweb App. Currently, middleware management is provided for three services of the app:
apidata service interface.wwwall source file service interfaces within the application.externalservice interfaces sent to other modules.
How to Use
Suppose you need to proxy some routes' interfaces and forward them to a QR code scanning module.
ts
import { Router, jsProcess } from "@plaoc/server/middlewares";
const app = new Router();
app.use(async (event) => {
console.log("api server:=>", event.request.url, jsProcess.mmid);
if (event.url.pathname.includes("/barcode-scanning")) {
const response = await jsProcess.nativeFetch(
"file://barcode-scanning.sys.dweb/process",
{
method: event.method,
body: event.body,
}
);
if (response.ok) {
return response;
} else {
return Response.json(`decode error:${await response.text()}`);
}
}
});
export default app;Packaging Middleware Services into the APP Internally
- When using
plaoc cli, specify-sparameter to point to the source code of the programmable backend, allowing you to bundle the backend within the App.
bash
plaoc server ./dist -s ./serverDist- In your root directory's
plaoc.jsonfile (create it if it doesn't exist), under themiddlewaresfield, specify the path to the middleware scripts in the programmable backend.
json
{
"defaultConfig": {
"lang": "en"
},
"middlewares": {
"www": "middlewares/index.plaoc-www.js",
"api": "middlewares/index.plaoc-api.js",
"external": "middlewares/index.plaoc-external.js"
},
"redirect": []
}Examples
For reference, check out the following projects: