Observed since 20 Oct, 20:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Fast nodejs module for API development
VERY SMALL (7kb) and fast Node.js module for API development written with ES6 features.
A fast and VERY SMALL Node.js framework for API development using HTTPS written with javascript ES6 features.
npm install 4crud --save
This project uses Mocha-Chai combination in /test folder
npm test
or
node test/server.js
and in other cli type:
curl localhost:3000/getroute1?name=john
curl -X POST -H "Content-Type: application/json" -d '{"name":"john","password":"abc"}' localhost:3000/postroute1
const Server = require('4crud')
const fs = require('fs') //Only for https
const privateKey = fs.readFileSync([PRIVATEKEYPATH], 'utf8') //Only for https
const certificate = fs.readFileSync([CERTIFICATEPATH], 'utf8') //Only for https
const credentials = {
key: privateKey,
cert: certificate,
passphrase: [PASS] //if exists
} //Only for https
const server = new Server()
server
// curl localhost:3000/getroute1?name=john
.get('/route1', (req, res) => {
console.log(`GET on route 1 with name: ${req.search.get('name')}`)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.url))
})
.get('/route2', (req, res) => {
//console.log('GET on route 2')
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end('Hello')
})
// curl -X POST -H "Content-Type: application/json" -d '{"name":"john","password":"abc"}' localhost:3000/postroute1
.post('/route1', (req, res) => {
console.log(`POST route 1 with name ${req.body.name}`)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.body))
})
.post('/route2', (req, res) => {
console.log('POST on route 2')
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.body))
})
.put('/route1', (req, res) => {
console.log('PUT on route 1')
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.body))
})
.delete('/route2', (req, res) => {
console.log(`DELETE on route 1 with name ${req.body.name}`)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.body))
})
.start(3000, credentials) // start server at port 3000
Bellow the benchmark uses wrk (https://github.com/wg/wrk/wiki/Installing-Wrk-on-Linux)
Run on your preferred CLI on /test folder with server on:
wrk -t8 -c100 -d30s http://localhost:3000/getroute1
| Framework | Requests/second | Size(kB) |
|---|---|---|
| Express | ~05500 | 260 |
| 4crud | ~15100 | 15 |
| Native | ~19000 | - |
npm start
This project is licensed under the MIT License - see the LICENSE file for details
git checkout -b feature/fooBar)git commit -am 'Add some fooBar')git push origin feature/fooBar)Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 20:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c39751c16c7965afa9474489fb59cad905a1facf1c16dfc2a23e30e05e71d136