expressjs-gen
v1.0.3
Published
Express Node.JS out of the box generator
Downloads
18
Readme
Node.JS Express Generator
The purpose of this module is to have ready at all times, out of the box, a basic express js server ready to run for prototyping.
Installation
This is a Node.js module available through the npm registry.
Before installing, download and install Node.js. Node.js 8 or higher is required.
Installation is done using the
npm install command:
$ npm install expressjs-gen --gFeatures
- Easy to use
- Faster then writing the code :)
- Generates a small Node.JS Express aplication
- File upload
- ES9 friendly
- Works in VSCode
Quick Start
The quickest way to get started with the generator is to create a folder and call the scripr from there.
$ cd Desktop/ && mkdir expressapp
$ cd expressappCreate the app:
$ expressjs-genFollow the steps.
Expected Output.
Folder structure
┬ Instalation path
├─┬ .vscode
│ └── launch.json
├── node_modules
│ └── ...
├── index.js
├── package-lock.json
└── package.jsonCode
const bodyParser = require('body-parser')
const app = require('express')()
const multer = require('multer')
const upload = multer({ dest: './uploads' })
const fs = require('fs')
const port = 3000
const METAS_PATH = './filemetas'
app.use(bodyParser.json({ type: 'application/json' }))
app.post('/', (req, res) => {
res.json(req.body)
})
app.get('/', (req, res) => {
res.json({ hello: 'world' })
})
app.put('/', upload.single('file'), (req, res) => {
if (!fs.existsSync(METAS_PATH))
fs.mkdirSync(METAS_PATH)
fs.writeFileSync(`${METAS_PATH}/${req.file.filename}.json`, JSON.stringify(req.file, null, 2))
res.send(req.file)
})
app.get('/filemetas', (req, res) => {
try {
res.json(fs.readdirSync(METAS_PATH).reduce((acc, f) => { acc.push(JSON.parse(fs.readFileSync(`${METAS_PATH}/${f}`))); return acc }, []))
} catch (error) {
res.send({ desc: 'Cannot read files', error })
}
})
app.listen(port, () => {
console.log(`API listening on ${port}.`)
})Routes
URL: /
Method: GET
Response:
{ "hello": "world" }Responds with the request's body.
URL: /
Method: POST
Request:
{ "hello": "expressjs-gen" }Response:
{ "hello": "expressjs-gen" }Upload file with a multipart/form-data type request.
URL: /
Method: PUT
Field Name: file
Response:
{
"fieldname": "file",
"originalname": "file.txt",
"encoding": "7bit",
"mimetype": "text/plain",
"destination": "./uploads",
"filename": "4d5ea5b9d255848fb9f0db61d719ebc4",
"path": "uploads/4d5ea5b9d255848fb9f0db61d719ebc4",
"size": 3157
}Get metadata pertaining to uploaded file(s).
URL: /filemetas
Method: GET
Response:
[
{
"fieldname": "file",
"originalname": "file.txt",
"encoding": "7bit",
"mimetype": "text/plain",
"destination": "./uploads",
"filename": "4d5ea5b9d255848fb9f0db61d719ebc4",
"path": "uploads/4d5ea5b9d255848fb9f0db61d719ebc4",
"size": 3157
}
]