Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.08.2018, 17:23
Интересующийся
Отправить личное сообщение для wwIOPUCTww Посмотреть профиль Найти все сообщения от wwIOPUCTww
 
Регистрация: 16.08.2018
Сообщений: 11

Выполнение функции при нажатии кнопки на сайте node.js
С javascript знаком, нужно при нажатии кнопки что бы сработала функция создания папки, а затем файла в ней. Через node.js у меня такое получается но только в тот момент когда запускаю Js файл через командную строку. Проблема моя в том что я не могу к кнопке на сайте присвоить функцию, смотрел "Гош... Дуд....", у него есть видео ролик где он пишет код, после чего запускает JS файл и создается папка с файлом, но мне нужно что-бы я нажал кнопку в браузере, и в этот момент запустилась эта функция, а для этого нужно присвоить той кнопке эту функцию вот этого он не показывает, типа "Вот смотрите я иду в магазин, купил килограмм картошки, принес ее домой, помыл, почистил, ну а дальше для вас не составит проблем приготовить из нее пюре", давлюсь сырой картошкой, а хочется приготовить горячее картофельное пюре. Как функции присваиваются. Сервер создал через Node.JS + Express (больше ни чего не подключал). Могу написать код что бы при запуске сервера создавались папки и файлы, но не могу присвоить функцию к кнопке, что бы при запущенном сервере все срабатывало.
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2018, 14:51
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

index.html
<html>

<head>
  <script>
    document.addEventListener('DOMContentLoaded', function () {
      document.getElementById('status').innerHTML = "Status: Loaded"
      document.getElementById('runner').addEventListener('click', function () {
        document.getElementById('status').innerHTML = "Status: Running..."
        fetch('/run_something').then(r => r.json()).then(({ status }) => {
          document.getElementById('status').innerHTML = `Status: ${status}`
        }).catch(function (error) {
          document.getElementById('status').innerHTML = `Status: ${error.message}`
        })
      })
    })
  </script>
</head>

<body>
  <h1>Expressed</h1>
  <hr/>
  <div id="status"></div>
  <hr/>
  <button id="runner">run something</button>
</body>

</html>


server.js
var express = require('express')
var app = express()
app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html')
})
app.get('/run_something', function (req, res) {
  res.send(JSON.stringify({ status: 'ok' }))
})
app.listen(4000, function () {
  console.log('started at http://localhost:4000')
})


package.json
{
  "name": "expressed",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express": "^4.16.3"
  },
  "scripts": {
    "server": "node server.js"
  }
}


yarn install
yarn server
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2018, 19:23
Интересующийся
Отправить личное сообщение для wwIOPUCTww Посмотреть профиль Найти все сообщения от wwIOPUCTww
 
Регистрация: 16.08.2018
Сообщений: 11

Привет! Спасибо за пример SuperZen, я сделал все как сказал, у меня работает, но это в принципе я и сам мог сделать (если только я что то не понял из твоего посыла), мне нужно, что бы нажал кнопку "Создать папку" и исполнилась функция "fs.mkdir('New')"
index.html
<html>
<head>
  <script src="server.js"></script>
</head>
<body>
  <h1>Expressed</h1>
  <hr/>
  <div id="status"></div>
  <hr/>
  <button onclick="reid()">Создать папку</button>
</body>
</html>

server.js
var express = require('express')
var app = express()

function reid(){
  var fs = require('fs')
  fs.mkdirSync('New')
}
app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html')
})
app.listen(4000, function () {
  console.log('started at http://localhost:4000')
})

Запускаю "node server", жму кнопку и ноль эмоций, я что то не догоняю, помогите понять принцип.
За основу взял твой код, только изменил немного.

Последний раз редактировалось wwIOPUCTww, 28.08.2018 в 22:00. Причина: Попробовал код, есть вопросы
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2018, 14:27
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

server.js
var express = require('express')
var app = express()

function reid() {
    var fs = require('fs')
    fs.mkdirSync('New')
}

app.get('/', function (req, res) {
    res.sendFile(__dirname + '/index.html')
})

app.get('/createDirectory', function (req, res) {
    try {
        reid()
        res.send(JSON.stringify({ created: 'success' }))
    } catch (erorr) {
        res.send(JSON.stringify({ created: 'failed' }))
    }
})

app.listen(4000, function () {
    console.log('started at http://localhost:4000')
})


index.html
<html>

<head>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            document.getElementById('createDirectory').addEventListener('click', function(e) {
                fetch('/createDirectory').then(r => r.json()).then(r => {
                    alert(r.created)
                })
            })
        })
    </script>
</head>

<body>
    <h1>Expressed</h1>
    <hr/>
    <div id="status"></div>
    <hr/>
    <button id="createDirectory">Создать папку</button>
</body>

</html>


node server.js && open http://localhost:4000
Ответить с цитированием
  #5 (permalink)  
Старый 30.08.2018, 11:39
Интересующийся
Отправить личное сообщение для wwIOPUCTww Посмотреть профиль Найти все сообщения от wwIOPUCTww
 
Регистрация: 16.08.2018
Сообщений: 11

Спасибо, принцип понял, все функции нужные мне работают.
Ответить с цитированием
  #6 (permalink)  
Старый 05.09.2018, 16:39
Интересующийся
Отправить личное сообщение для wwIOPUCTww Посмотреть профиль Найти все сообщения от wwIOPUCTww
 
Регистрация: 16.08.2018
Сообщений: 11

Привет всем! Еще есть одна просьба, как создать папки с именем "переменной":

function reid() {
var fs = require('fs')
var x = proba
fs.mkdirSync('New/$x$')
}

server.js
var express = require('express')
var app = express()

function reid() {
    var fs = require('fs')
    var x = proba
    fs.mkdirSync('New/$x$')
}
app.get('/', function (req, res) {
    res.sendFile(__dirname + '/index.html')
})

app.get('/createDirectory', function (req, res) {
    try {
        reid()
        res.send(JSON.stringify({ created: 'success' }))
    } catch (erorr) {
        res.send(JSON.stringify({ created: 'failed' }))
    }
})

app.listen(4000, function () {
    console.log('started at http://localhost:4000')
})

index.html
<html>

<head>
    <script>
        document.addEventListener('DOMContentLoaded', function () {
            document.getElementById('createDirectory').addEventListener('click', function(e) {
                fetch('/createDirectory').then(r => r.json()).then(r => {
                    alert(r.created)
                })
            })
        })
    </script>
</head>

<body>
    <h1>Expressed</h1>
    <hr/>
    <div id="status"></div>
    <hr/>
    <button id="createDirectory">Создать папку</button>
</body>

</html>

Последний раз редактировалось wwIOPUCTww, 05.09.2018 в 16:41.
Ответить с цитированием
  #7 (permalink)  
Старый 12.09.2018, 11:27
Интересующийся
Отправить личное сообщение для wwIOPUCTww Посмотреть профиль Найти все сообщения от wwIOPUCTww
 
Регистрация: 16.08.2018
Сообщений: 11

Сделал, все оказалось очень просто:
function reid() {
var fs = require('fs')
var x = age
var y = 22
var z = 'new/papka/' + x + '/' + y
fs.mkdirSync(z)
}

Создается папка с путем: new/papka/age/22
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2018, 12:05
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 641

var fs = require('fs')
var path = require('path')
...
app.get('/createDirectory/:age/:id', function(req,res) {
  fs.mkdirSync(path.join('new', 'papka', req.params.age, req.params.id))
  res.json({status: 'created'})
})
...

можно юзать dynamic routes в express
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена background при нажатии кнопки Musica24 Элементы интерфейса 3 18.12.2015 09:43
Вывод информации при нажатии кнопки читать далее vacuumtrade Элементы интерфейса 44 15.07.2015 06:33
Вставка текста при нажатии кнопки visier Элементы интерфейса 5 03.09.2014 14:57
Выполнение функции при загрузке страницы casper-man jQuery 1 09.08.2014 23:42
Изменение цвета текста кнопки и цвета кнопки при нажатии Setta jQuery 22 31.07.2013 17:48