How-to : express JS
commit
30d9237a7a
@ -0,0 +1,19 @@
|
||||
# How To
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* [VS Code](https://code.visualstudio.com/)
|
||||
* [IntelliJ IDEA Community](https://www.jetbrains.com/idea/download/#section=windows)
|
||||
|
||||
* [nodeJS 12.x](https://nodejs.org/en/download/releases/)
|
||||
* [JDK 8](https://adoptopenjdk.net/) - For Spring Boot only
|
||||
* [Postman](https://www.postman.com/)
|
||||
|
||||
## Framework
|
||||
|
||||
* Backend
|
||||
* [expressJS](./backend/expressJS/README.md)
|
||||
* springboot
|
||||
* Frontend
|
||||
* [reactJS](./frontend/reactJS/README.md)
|
||||
* vueJS
|
||||
@ -0,0 +1,117 @@
|
||||
# Express JS
|
||||
|
||||
[Home](../../README.md)
|
||||
|
||||
[Reference](https://expressjs.com/en/starter)
|
||||
|
||||
|
||||
|
||||
Create a project skeleton
|
||||
|
||||
Option1 : Using basic `npm` step
|
||||
|
||||
```sh
|
||||
$ mkdir myapp
|
||||
$ cd myapp
|
||||
|
||||
$ npm init
|
||||
|
||||
$ npm install express --save
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Option2 : Using `npx` express application generator.
|
||||
|
||||
```sh
|
||||
$ mkdir myapp
|
||||
$ cd myappnpm
|
||||
$ npx express-generator
|
||||
$ npm install
|
||||
```
|
||||
|
||||
|
||||
|
||||
Launch `vscode` IDE
|
||||
|
||||
```sh
|
||||
$ code .
|
||||
```
|
||||
|
||||
|
||||
|
||||
Validate the `./bin/www.js`. By default, server serve at port 3000
|
||||
|
||||
```javascript
|
||||
|
||||
var port = normalizePort(process.env.PORT || '3000');
|
||||
app.set('port', port);
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
Add new route in `app.js` for *helloworld* routing
|
||||
|
||||
```javascript
|
||||
var helloworldRouter = require('./routes/helloworld');
|
||||
//...
|
||||
app.use('/', indexRouter);
|
||||
app.use('/users', usersRouter);
|
||||
// new routing to helloworld
|
||||
app.use('/helloworld', helloworldRouter);
|
||||
```
|
||||
|
||||
|
||||
|
||||
Create new routing for `helloworld.js`
|
||||
|
||||
```javascript
|
||||
var express = require('express');
|
||||
var router = express.Router();
|
||||
|
||||
// GET method
|
||||
router.get('/', function (req, res) {
|
||||
res.send('Hello World!')
|
||||
})
|
||||
|
||||
// POST method
|
||||
router.post('/', function (req, res) {
|
||||
res.send('Got a POST request')
|
||||
})
|
||||
|
||||
// PUT method
|
||||
router.put('/user', function (req, res) {
|
||||
res.send('Got a PUT request at helloworld/user')
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
```
|
||||
|
||||
|
||||
|
||||
Run the server
|
||||
|
||||
```sh
|
||||
$ npm start
|
||||
...
|
||||
> expressjs@0.0.0 start C:\dev\playground\expressJS
|
||||
> node ./bin/www
|
||||
```
|
||||
|
||||
|
||||
|
||||
Browse [localhost](http://localhost:3000). You should see the text in browser
|
||||
|
||||
```text
|
||||
Express
|
||||
Welcome to Express
|
||||
```
|
||||
|
||||
|
||||
|
||||
Use *Postman* to execute 'POST', 'PUT' methods
|
||||
|
||||
[json](./postman_collection.json)
|
||||
|
||||
@ -0,0 +1,134 @@
|
||||
{
|
||||
"info": {
|
||||
"_postman_id": "3d0d7bdd-fd8f-4697-8f82-1b046a77464a",
|
||||
"name": "expressJS",
|
||||
"description": "sample expressJS endpoint",
|
||||
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
||||
},
|
||||
"item": [
|
||||
{
|
||||
"name": "POST helloworld",
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Authorization",
|
||||
"value": "SENSETIMESTUDIO authorization token. Start from BASIC",
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"mode": "formdata",
|
||||
"formdata": [
|
||||
{
|
||||
"key": "firstContext",
|
||||
"value": "\"{\\\"type\\\":\\\"image\\\",\\\"metadata\\\":{\\\"access\\\":\\\"base64\\\",\\\"info\\\":{\\\"data\\\":\\\"YOUR BASE64 IMAGE\\\"}}}\"",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"key": "secondContext",
|
||||
"value": "\"{\\\"type\\\":\\\"image\\\",\\\"metadata\\\":{\\\"access\\\":\\\"base64\\\",\\\"info\\\":{\\\"data\\\":\\\"YOUR BASE64 IMAGE\\\"}}}\"",
|
||||
"type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
"url": {
|
||||
"raw": "http://localhost:3000/helloworld",
|
||||
"protocol": "http",
|
||||
"host": [
|
||||
"localhost"
|
||||
],
|
||||
"port": "3000",
|
||||
"path": [
|
||||
"helloworld"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": []
|
||||
},
|
||||
{
|
||||
"name": "GET helloworld",
|
||||
"protocolProfileBehavior": {
|
||||
"disableBodyPruning": true
|
||||
},
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"header": [
|
||||
{
|
||||
"key": "Authorization",
|
||||
"value": "SENSETIMESTUDIO authorization token. Start from BASIC",
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"mode": "formdata",
|
||||
"formdata": [
|
||||
{
|
||||
"key": "firstContext",
|
||||
"value": "\"{\\\"type\\\":\\\"image\\\",\\\"metadata\\\":{\\\"access\\\":\\\"base64\\\",\\\"info\\\":{\\\"data\\\":\\\"YOUR BASE64 IMAGE\\\"}}}\"",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"key": "secondContext",
|
||||
"value": "\"{\\\"type\\\":\\\"image\\\",\\\"metadata\\\":{\\\"access\\\":\\\"base64\\\",\\\"info\\\":{\\\"data\\\":\\\"YOUR BASE64 IMAGE\\\"}}}\"",
|
||||
"type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
"url": {
|
||||
"raw": "http://localhost:3000/helloworld",
|
||||
"protocol": "http",
|
||||
"host": [
|
||||
"localhost"
|
||||
],
|
||||
"port": "3000",
|
||||
"path": [
|
||||
"helloworld"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": []
|
||||
},
|
||||
{
|
||||
"name": "PUT helloworld",
|
||||
"request": {
|
||||
"method": "PUT",
|
||||
"header": [
|
||||
{
|
||||
"key": "Authorization",
|
||||
"value": "SENSETIMESTUDIO authorization token. Start from BASIC",
|
||||
"type": "text"
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"mode": "formdata",
|
||||
"formdata": [
|
||||
{
|
||||
"key": "firstContext",
|
||||
"value": "\"{\\\"type\\\":\\\"image\\\",\\\"metadata\\\":{\\\"access\\\":\\\"base64\\\",\\\"info\\\":{\\\"data\\\":\\\"YOUR BASE64 IMAGE\\\"}}}\"",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"key": "secondContext",
|
||||
"value": "\"{\\\"type\\\":\\\"image\\\",\\\"metadata\\\":{\\\"access\\\":\\\"base64\\\",\\\"info\\\":{\\\"data\\\":\\\"YOUR BASE64 IMAGE\\\"}}}\"",
|
||||
"type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
"url": {
|
||||
"raw": "http://localjost:3000/helloworld/user",
|
||||
"protocol": "http",
|
||||
"host": [
|
||||
"localjost"
|
||||
],
|
||||
"port": "3000",
|
||||
"path": [
|
||||
"helloworld",
|
||||
"user"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
# React JS
|
||||
|
||||
Bootstrapping a project
|
||||
|
||||
```shell
|
||||
npm install
|
||||
|
||||
npx create-react-app <projectname>
|
||||
|
||||
```
|
||||
|
||||
Loading…
Reference in New Issue