Minimalist web framework for Node.js
Diamond JS is Express inspired framework, made for learning purposes.
npm install diamondjs
const Diamond = require('diamondjs');
const server = new Diamond();
server.get('/', (req, res) => {
res.write('Hello world!');
});
server.start(8080);
const Diamond = require('diamondjs');
const server = new Diamond();
const port = 8080;
server.start(port);
server.use((req, res, next) => {
console.log('Middleware 1 called');
next();
});
const morgan = require('morgan');
server.use(morgan('dev'));
Supported methods are POST GET PUT PATCH DELETE
server.route('GET', '/news', (req, res) => {
res.write('Hello news!');
});
server.route('POST', ...);
server.route('PUT', ...);
server.route('PATCH', ...);
server.route('DELETE', ...);
server.get('/admin', (req, res) => {
res.write('Hello admin!');
});
server.post(...);
server.put(...);
server.patch(...);
server.delete(...);
app.js
// Set controllers directory (optional, default is controllers)
// server.setControllersDir('example/controllers');
server.route('GET', '/', 'MainController@index');
server.route('GET', '/home', 'MainController@home');
controllers/MainController.js
exports.index = (req, res) => {
res.write('Index');
};
exports.home = (req, res) => {
res.write('Home');
};
Only pug
view engine is supported for now.
// Set controllers directory (optional, default is views)
// server.setViewsDir('example/views');
server.useViewEngine('pug');
// This will render views/news.pug
server.route('GET', '/news', (req, res) => {
res.render('news');
});