super commit
This commit is contained in:
		
							
								
								
									
										164
									
								
								app.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								app.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| var express = require('express'); | ||||
| var multer  = require("multer"); | ||||
|  | ||||
| var bodyParser = require('body-parser'); | ||||
| var fs = require('fs'); | ||||
|  | ||||
| var app = express(); | ||||
| var jsonParser = bodyParser.json(); | ||||
| app.use(express.static(__dirname + '/public')); | ||||
|  | ||||
| // получение списка данных | ||||
| app.get('/api/users', function (req, res) { | ||||
|     var content = fs.readFileSync('users.json', 'utf8'); | ||||
|     var users = JSON.parse(content); | ||||
|  | ||||
|     res.send(users); | ||||
| }); | ||||
|  | ||||
| // получение одного пользователя по id | ||||
| app.get('/api/users/:id', function (req, res) { | ||||
|     var id = req.params.id; // получаем id | ||||
|     var content = fs.readFileSync('users.json', 'utf8'); | ||||
|     var users = JSON.parse(content); | ||||
|     var user = null; | ||||
|  | ||||
|     // находим в массиве пользователя по id | ||||
|     for (var i = 0; i < users.length; i++) { | ||||
|         if (users[i].id == id) { | ||||
|             user = users[i]; | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     // отправляем пользователя | ||||
|     if (user) { | ||||
|         res.send(user); | ||||
|     } else { | ||||
|         res.status(404).send(); | ||||
|     } | ||||
| }); | ||||
|  | ||||
| // Скачивание изображения | ||||
| const storage = multer.diskStorage({ | ||||
|     destination: function (req, file, cb) { | ||||
|         cb(null, __dirname + '/public/images') | ||||
|     }, | ||||
|  | ||||
|     filename: function (req, file, cb) { | ||||
|         var fileName = file.originalname; | ||||
|         cb(null, fileName) | ||||
|     } | ||||
| }) | ||||
|  | ||||
| const upload = multer({storage: storage}); | ||||
| app.post('/imageLoad', upload.single('image'), function (req, res, next) {  | ||||
|     res.redirect("/") | ||||
|     next(); | ||||
| }); | ||||
|  | ||||
| // получение отправленных данных | ||||
| app.post('/api/users', jsonParser, function (req, res, next) { | ||||
|     if (!req.body) return res.sendStatus(400); | ||||
|  | ||||
|     var userName = req.body.name; | ||||
|     var userAge = req.body.age; | ||||
|     var userImage = req.body.image; | ||||
|     var user = { name: userName, age: userAge, image: userImage}; | ||||
|  | ||||
|     var data = fs.readFileSync('users.json', 'utf8'); | ||||
|     var users = JSON.parse(data); | ||||
|  | ||||
|     // находим максимальный id | ||||
|     var id = Math.max.apply( | ||||
|         Math, | ||||
|         users.map(function (o) { | ||||
|             return o.id; | ||||
|         }) | ||||
|     ); | ||||
|  | ||||
|     // увеличиваем его на единицу | ||||
|     if (id == -Infinity) { | ||||
|         id = 0 | ||||
|         user.id = id | ||||
|     } | ||||
|     else{ | ||||
|         user.id = id + 1; | ||||
|     }   | ||||
|  | ||||
|     // добавляем пользователя в массив | ||||
|     users.push(user); | ||||
|     var data = JSON.stringify(users); | ||||
|  | ||||
|     // перезаписываем файл с новыми данными | ||||
|     fs.writeFileSync('users.json', data); | ||||
|     res.send(user); | ||||
|     next(); | ||||
| }); | ||||
|  | ||||
| // удаление пользователя по id | ||||
| app.delete('/api/users/:id', function (req, res) { | ||||
|     var id = req.params.id; | ||||
|     var data = fs.readFileSync('users.json', 'utf8'); | ||||
|     var users = JSON.parse(data); | ||||
|     var index = -1; | ||||
|  | ||||
|     // находим индекс пользователя в массиве | ||||
|     for (var i = 0; i < users.length; i++) { | ||||
|         if (users[i].id == id) { | ||||
|             index = i; | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|     if (index > -1) { | ||||
|  | ||||
|         // удаляем пользователя из массива по индексу | ||||
|         var user = users.splice(index, 1)[0]; | ||||
|         var data = JSON.stringify(users); | ||||
|         fs.writeFileSync('users.json', data); | ||||
|  | ||||
|         // отправляем удаленного пользователя | ||||
|         res.send(user); | ||||
|     } else { | ||||
|         res.status(404).send(); | ||||
|     } | ||||
| }); | ||||
|  | ||||
| // изменение пользователя | ||||
| app.put('/api/users', jsonParser, function (req, res) { | ||||
|     if (!req.body) return res.sendStatus(400); | ||||
|     var userAge = req.body.age; | ||||
|     var userName = req.body.name; | ||||
|     var userImage = req.body.image; | ||||
|  | ||||
|     if (userName == "" || userAge == "" ||  userImage == "") {return}; | ||||
|     // if (userName.length < 3 ||  Number(userAge) > 130 ||  userImage == "") {return}; | ||||
|  | ||||
|     var userId = req.body.id; | ||||
|  | ||||
|     var data = fs.readFileSync('users.json', 'utf8'); | ||||
|     var users = JSON.parse(data); | ||||
|     var user; | ||||
|     for (var i = 0; i < users.length; i++) { | ||||
|         if (users[i].id == userId) { | ||||
|             user = users[i]; | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     // изменяем данные у пользователя | ||||
|     if (user) { | ||||
|         user.age = userAge; | ||||
|         user.name = userName; | ||||
|         user.image = userImage; | ||||
|         var data = JSON.stringify(users); | ||||
|         fs.writeFileSync('users.json', data); | ||||
|         res.send(user); | ||||
|     } else { | ||||
|         res.status(404).send(user); | ||||
|     } | ||||
| }); | ||||
|  | ||||
| app.listen(3000, function () { | ||||
|     console.log('Сервер ожидает подключения...'); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user
	 qwr
					qwr