Booting FeathersJS asynchron.
Starting the application after all required tasks are done. For example you have to fill your memory storage with content before the application should start the http server.
npm install --save feathers-async-boot
Call app.start()
. This will return a Promise.
Example:
const app = feathers();
...
app.configure(boot);
app.bootstrap([...modules]);
app.start()
.then(() => {
app.listen(3040);
})
.catch(err => {
logger.error(`error during boostrap the application. ${err}`);
});
There are different posibilities to start your application, even on when your bootstrap modules are rejected.
const app = feathers();
app
.start()
.finally(() => {
app.listen(3040);
});
const app = feathers();
app
.start()
.then(res => {
})
.catch(err => {
app.listen(3040);
});
The start will always resolve, as a result you get all possible errors
const app = feathers();
const ErrorHandling = requier('feathers-async-boot/lib/errorhandling');
app
.start(ErrorHandling.WARN)
.then(res => {
app.listen(3040);
});
The start will always resolve, result will be always true
const app = feathers();
const ErrorHandling = requier('feathers-async-boot/lib/errorhandling');
app
.start(ErrorHandling.WARN)
.then(res => {
app.listen(3040);
});
const feathers = require('@feathersjs/feathers');
const express = require('@feathersjs/express');
const boot = require('feathers-async-boot');
const asyncModuleToBoot = require('./async-module-to-boot');
const app = express(feathers());
app.configure(boot);
app.bootstrap([asyncModuleToBoot]);
app.bootstrap([asyncModuleToBoot]);
app.bootstrap([asyncModuleToBoot]);
app
.start()
.then(res => {
const server = app.listen(3040);
server.on('listening', () => {
console.log(`server started @ port ${server.address().port}`);
});
});
for more examples see the example directory.