Added frontend
This commit is contained in:
parent
8f67024337
commit
c3ce1336cb
42
frontend/index.html
Normal file
42
frontend/index.html
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Калькулятор</title>
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
|
||||||
|
<div class="m-auto dflex flex-row align-items-center">
|
||||||
|
<div class="col-sm-3 my-1">
|
||||||
|
<input type="number" class="form-control" id="num1">
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-3 my-1">
|
||||||
|
<select class="form-control" id="operation">
|
||||||
|
<option value="sum" selected>+</option>
|
||||||
|
<option value="sub">-</option>
|
||||||
|
<option value="mul">*</option>
|
||||||
|
<option value="div">/</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-3 my-1">
|
||||||
|
<input type="number" class="form-control" id="num2">
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-3 my-1">
|
||||||
|
<button type="button" class="form-control btn btn-light" id="get-result" onclick="calculate()">=</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-3 my-1">
|
||||||
|
<p class="h5" id="result"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
async function calculate() {
|
||||||
|
const num1 = document.getElementById("num1").value
|
||||||
|
const num2 = document.getElementById("num2").value
|
||||||
|
document.getElementById("result").innerHTML = await (await fetch(`http://127.0.0.1:8080/${document.getElementById("operation").value}?num1=${num1}&num2=${num2}`)).text()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
12
frontend/index.js
Normal file
12
frontend/index.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
const fs = require('fs')
|
||||||
|
const http = require('http')
|
||||||
|
|
||||||
|
const requestListener = async function (req, res) {
|
||||||
|
res.writeHead(200);
|
||||||
|
fs.readFile('index.html', (err, data) => {
|
||||||
|
res.end(data);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const server = http.createServer(requestListener)
|
||||||
|
server.listen(5050)
|
9
frontend/node_modules/fs/README.md
generated
vendored
Normal file
9
frontend/node_modules/fs/README.md
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Security holding package
|
||||||
|
|
||||||
|
This package name is not currently in use, but was formerly occupied
|
||||||
|
by another package. To avoid malicious use, npm is hanging on to the
|
||||||
|
package name, but loosely, and we'll probably give it to you if you
|
||||||
|
want it.
|
||||||
|
|
||||||
|
You may adopt this package by contacting support@npmjs.com and
|
||||||
|
requesting the name.
|
46
frontend/node_modules/fs/package.json
generated
vendored
Normal file
46
frontend/node_modules/fs/package.json
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"_from": "fs",
|
||||||
|
"_id": "fs@0.0.1-security",
|
||||||
|
"_inBundle": false,
|
||||||
|
"_integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==",
|
||||||
|
"_location": "/fs",
|
||||||
|
"_phantomChildren": {},
|
||||||
|
"_requested": {
|
||||||
|
"type": "tag",
|
||||||
|
"registry": true,
|
||||||
|
"raw": "fs",
|
||||||
|
"name": "fs",
|
||||||
|
"escapedName": "fs",
|
||||||
|
"rawSpec": "",
|
||||||
|
"saveSpec": null,
|
||||||
|
"fetchSpec": "latest"
|
||||||
|
},
|
||||||
|
"_requiredBy": [
|
||||||
|
"#USER",
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
"_resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||||
|
"_shasum": "8a7bd37186b6dddf3813f23858b57ecaaf5e41d4",
|
||||||
|
"_spec": "fs",
|
||||||
|
"_where": "C:\\Users\\user\\Desktop\\something\\frontend",
|
||||||
|
"author": "",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/npm/security-holder/issues"
|
||||||
|
},
|
||||||
|
"bundleDependencies": false,
|
||||||
|
"deprecated": false,
|
||||||
|
"description": "This package name is not currently in use, but was formerly occupied by another package. To avoid malicious use, npm is hanging on to the package name, but loosely, and we'll probably give it to you if you want it.",
|
||||||
|
"homepage": "https://github.com/npm/security-holder#readme",
|
||||||
|
"keywords": [],
|
||||||
|
"license": "ISC",
|
||||||
|
"main": "index.js",
|
||||||
|
"name": "fs",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/npm/security-holder.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"version": "0.0.1-security"
|
||||||
|
}
|
9
frontend/node_modules/http/README.md
generated
vendored
Normal file
9
frontend/node_modules/http/README.md
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Security holding package
|
||||||
|
|
||||||
|
This package name is not currently in use, but was formerly occupied
|
||||||
|
by another package. To avoid malicious use, npm is hanging on to the
|
||||||
|
package name, but loosely, and we'll probably give it to you if you
|
||||||
|
want it.
|
||||||
|
|
||||||
|
You may adopt this package by contacting support@npmjs.com and
|
||||||
|
requesting the name.
|
39
frontend/node_modules/http/package.json
generated
vendored
Normal file
39
frontend/node_modules/http/package.json
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"_from": "http",
|
||||||
|
"_id": "http@0.0.1-security",
|
||||||
|
"_inBundle": false,
|
||||||
|
"_integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==",
|
||||||
|
"_location": "/http",
|
||||||
|
"_phantomChildren": {},
|
||||||
|
"_requested": {
|
||||||
|
"type": "tag",
|
||||||
|
"registry": true,
|
||||||
|
"raw": "http",
|
||||||
|
"name": "http",
|
||||||
|
"escapedName": "http",
|
||||||
|
"rawSpec": "",
|
||||||
|
"saveSpec": null,
|
||||||
|
"fetchSpec": "latest"
|
||||||
|
},
|
||||||
|
"_requiredBy": [
|
||||||
|
"#USER",
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
"_resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
|
||||||
|
"_shasum": "3aac09129d12dc2747bbce4157afde20ad1f7995",
|
||||||
|
"_spec": "http",
|
||||||
|
"_where": "C:\\Users\\user\\Desktop\\something\\frontend",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/npm/security-holder/issues"
|
||||||
|
},
|
||||||
|
"bundleDependencies": false,
|
||||||
|
"deprecated": false,
|
||||||
|
"description": "security holding package",
|
||||||
|
"homepage": "https://github.com/npm/security-holder#readme",
|
||||||
|
"name": "http",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/npm/security-holder.git"
|
||||||
|
},
|
||||||
|
"version": "0.0.1-security"
|
||||||
|
}
|
18
frontend/package-lock.json
generated
Normal file
18
frontend/package-lock.json
generated
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "frontend",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"fs": {
|
||||||
|
"version": "0.0.1-security",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||||
|
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||||
|
},
|
||||||
|
"http": {
|
||||||
|
"version": "0.0.1-security",
|
||||||
|
"resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
|
||||||
|
"integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
frontend/package.json
Normal file
15
frontend/package.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "frontend",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "node index.js"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"fs": "0.0.1-security",
|
||||||
|
"http": "0.0.1-security"
|
||||||
|
}
|
||||||
|
}
|
13
src/main/java/np/something/WebConfiguration.java
Normal file
13
src/main/java/np/something/WebConfiguration.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package np.something;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class WebConfiguration implements WebMvcConfigurer {
|
||||||
|
@Override
|
||||||
|
public void addCorsMappings(CorsRegistry registry) {
|
||||||
|
registry.addMapping("/**").allowedMethods("*");
|
||||||
|
}
|
||||||
|
}
|
@ -1,13 +0,0 @@
|
|||||||
package np.something.controllers;
|
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
public class GreetingController {
|
|
||||||
@GetMapping("/greet")
|
|
||||||
public String greeting(@RequestParam(value = "name", defaultValue = "world") String name) {
|
|
||||||
return "Hello, " + name + "!";
|
|
||||||
}
|
|
||||||
}
|
|
41
src/main/java/np/something/controllers/MathController.java
Normal file
41
src/main/java/np/something/controllers/MathController.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package np.something.controllers;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class MathController {
|
||||||
|
@GetMapping("/sum")
|
||||||
|
public int sum(
|
||||||
|
@RequestParam(value = "num1", defaultValue = "0") int num1,
|
||||||
|
@RequestParam(value = "num2", defaultValue = "0") int num2
|
||||||
|
) {
|
||||||
|
|
||||||
|
return num1 + num2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/sub")
|
||||||
|
public int sub(
|
||||||
|
@RequestParam(value = "num1", defaultValue = "0") int num1,
|
||||||
|
@RequestParam(value = "num2", defaultValue = "0") int num2
|
||||||
|
) {
|
||||||
|
return num1 - num2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/mul")
|
||||||
|
public int mul(
|
||||||
|
@RequestParam(value = "num1", defaultValue = "0") int num1,
|
||||||
|
@RequestParam(value = "num2", defaultValue = "0") int num2
|
||||||
|
) {
|
||||||
|
return num1 * num2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/div")
|
||||||
|
public int div(
|
||||||
|
@RequestParam(value = "num1", defaultValue = "0") int num1,
|
||||||
|
@RequestParam(value = "num2", defaultValue = "0") int num2
|
||||||
|
) {
|
||||||
|
return num1 / num2;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user