Node.js - передать параметр в конечную точку от клиента - PullRequest
0 голосов
/ 30 марта 2020

У меня есть текстовое поле и кнопка на странице HTML. Я хочу, чтобы клиент мог передавать серверу путь к любому каталогу, а затем сервер отвечал содержимым каталога.

Я думаю, что проблема в var folderToBeRead. Я попытался передать textbox.value с document.queryselector, но терминал говорит, что «документ не определен»

// SERVER

const express = require('express');
const app = express();
var cors = require('cors');
var fs = require('fs');

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    next();
  });

var folderToBeRead = './folder' //I want this to be the chosen path from client


fs.readdir(folderToBeRead , function (err, files) {
  app.get('/dir',(req,res) => {
    res.json(files);
  });
});

app.listen(5000);

// КЛИЕНТ

var url_data = 'http://localhost:5000/dir';



function show(){
    $.ajax({
        url: url_data,
        type: "GET",
        dataType: "json",
        header: "Access-Control-Allow-Origin",
        success: function (response) {
            response.forEach(elemento => {
                $("#content").append(`<p>${elemento}</p>`);
            });
            $('#btn1').css({display:'none'});
            $('#btn2').css({display:'block'});
        },
        error: function (xhr, status) {
            console.log("error");
        }
    });
};


    function hide(){
        $("#content").html(``);
        $('#btn2').css({display:'none'});
        $('#btn1').css({display:'block'});
    };

1 Ответ

0 голосов
/ 30 марта 2020

Прежде всего, я не вижу в вашем клиентском вызове каких-либо данных, передаваемых на сервер, и при отправке данных на сервер это должен быть POST, а не get.

try:

$.ajax({
    url: url_data,
    type: "POST",
    data: "YOUR_DATA_HERE",
    dataType: "json",
    header: "Access-Control-Allow-Origin",
    success: function (response) {
        response.forEach(elemento => {
            $("#content").append(`<p>${elemento}</p>`);
        });
        $('#btn1').css({display:'none'});
        $('#btn2').css({display:'block'});
    },
    error: function (xhr, status) {
        console.log("error");
    }
});

Кроме того, почему вы используете json для передачи одной строки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...