Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express')
- const uuid = require("uuid") // уникальные айдишники
- const fs = require('fs')
- const bodyParser = require('body-parser');
- //
- const emessage = "Что-то пошло не так, попробуйте снова"
- //
- const app = express();
- app.use(bodyParser.urlencoded({ extended: true }));
- const port = 3001
- // работа с файлами
- const folderName = "../vacancies"
- const folder_place = "../place"
- if(!fs.existsSync(folderName)){
- fs.mkdirSync(folderName)
- }
- if(!fs.existsSync(folder_place)){
- fs.mkdirSync(folder_place)
- }
- // TODO: создание пользователя и запись его в вакансии
- function getDirectories(path) {
- return fs.readdirSync(path).filter(function (file) {
- return fs.statSync(path+'/'+file).isDirectory();
- });
- }
- //отдавать аддрес, обратотать ошибки:
- // 0 элементов
- app.post("/get_place", (req, res)=>{
- try{
- let {cnt} = req.body;
- dirid = getDirectories(folder_place)
- console.log("dirdis!! ", dirid)
- ids = []
- if(dirid.length == 0){
- console.log("dirdir here")
- res.status(201).json({message:"0 places"})
- return
- }
- for(let i = 0; i < cnt; i++){
- ids.push(dirid[Math.floor(Math.random()*dirid.length)]) // РАДнОМНЫЙ ЭлЕМЕНт
- }
- console.log("ids:", ids)
- // console.log(ids)
- vacancies = []
- for(let i = 0; i < Math.min(cnt, ids.length); i ++ ){
- let vac =fs.readFileSync(folder_place+"/" + ids[i] + "/" + ids[i] +".json", "utf8", (err) => {
- if (err)
- console.log(err);
- else {
- console.log("File open successfully");
- }
- })
- console.log(vac)
- vacancies.push(vac)
- }
- // console.log(vacancies)
- d = vacancies
- console.log(d)
- res.status(201).json({data:d})
- }catch(e){
- console.log(e);
- res.status(500).json({messssage:emessage})
- }
- })
- //TODO: Лимит на отправку, валидатор
- app.post("/new_vacancies", (req, res) => {
- try{
- const id = uuid.v4()
- let vacance = Object.assign({"vid" : id}, req.body)
- // console.log("vacance: ", vacance)
- let nfoldername = folderName+"/"+id
- if(!fs.existsSync(nfoldername)){
- let vac = JSON.stringify(vacance)
- console.log("vacancy: ", vac)
- fs.mkdirSync(nfoldername)
- fs.writeFile(nfoldername+"/"+id+".json", vac, (err) => {
- if (err)
- console.log(err);
- else {
- console.log("\nFile written successfully\n");
- }
- })
- }else{
- throw new Error("упс, айди совпали))))")
- }
- res.status(201).json({message:"Вакансия успешно отправлена."})
- }catch(e){
- console.log(e);
- res.status(500).json({messssage:emessage})
- }
- })
- app.post("/load_vacancies", (req, res)=>{
- try{
- let {cnt} = req.body;
- dirid = getDirectories("../hacaton_api/vacancies")
- ids = []
- for(let i = 0; i < cnt; i++){
- ids.push(dirid[Math.floor(Math.random()*dirid.length)]) // РАДнОМНЫЙ ЭлЕМЕНт
- }
- // console.log(ids)
- vacancies = []
- for(let i = 0; i < Math.min(cnt, ids.length); i ++ ){
- let vac =fs.readFileSync("../hacaton_api/vacancies/" + ids[i] + "/" + ids[i] +".json", "utf8", (err) => {
- if (err)
- console.log(err);
- else {
- console.log("File open successfully");
- }
- })
- console.log(vac)
- vacancies.push(vac)
- }
- // console.log(vacancies)
- d = vacancies
- console.log(d)
- res.status(201).json({data:d})
- }catch(e){
- console.log(e);
- res.status(500).json({messssage:emessage})
- }
- })
- // массив джейсонов всех данных
- //`{"vid":"fe899390-67a0-48f8-bdda-e6cf1dfe26e2","email":"123","first_name":"Bob","second_name":"Garrly","text":"Hello i am Bob and i'm gay","Phone":"89232939394","Prof":"Sex"}`
- app.listen(port, () => {
- console.log(`Example app listening on port ${port}`)
- })
Advertisement
Add Comment
Please, Sign In to add comment