Как получить путь к файлу в node js и перейти к запросу БД - PullRequest
0 голосов
/ 12 апреля 2020

Я использую Node.js express + PostgreSQL

Как передать путь к моему CSV-файлу через Node.js в запросе BD?

У меня есть и html форма, в которую вводится файл типа -

<form method="post" action="import_csv" target="_blank" enctype="multipart/form-data" >
<p><input type="file" name="csv_file">
<input type="submit" value="submit"></p>
</form>

После того, как я перенаправил этот пост-запрос на следующий метод контроллера (сервера).

app.post("/import_csv_file",urlencodedParser,function(req,res) {

    var config = {
        user:'postgres',
        database:'mybd',
        password: '1',
        host:'localhost',
        port:5432,
        max:10,
        idleTimeoutMillis: 30000
    }
    var pool = new pg.Pool(config)
    pool.connect(function(err, client, done){
        console.log("teacher")
        if(err){
            return console.error('error')
        }
        file_path = req.body.csv_file
        console.log(file_path)


        client.query("select * from import_csv($1,$2)",[log2,req.body.csv_file], function(err, result) {
            done()
        req.session.user2 = result
        if (err){
            res.end()
            return console.error("error")
       }
        res.render('import_csv_file',{jour:result}})
      })
       })

Результат, который я получаю здесь - undefined (console.log (req.body.csv_file))

Как передать путь к моему CSV-файлу в запрос к базе данных, чтобы все работало

1 Ответ

0 голосов
/ 13 апреля 2020

Спасибо всем за помощь!

Установщик Multer и далее

    const path = require('path')
    var multer = require('multer');
    const upload = multer({ dest: '/tmp/' });

    app.post("/import_csv_file",upload.any(),function(req,res) {

        var config = {
            user:'postgres',
            database:'mybd',
            password: '1',
            host:'localhost',
            port:5432,
            max:10,
            idleTimeoutMillis: 30000
        }
        var pool = new pg.Pool(config)
        pool.connect(function(err, client, done){
            console.log("teacher")
            if(err){
                return console.error('error')
            }
           console.log(req.body);
  console.log(req.files);

  const file = req.files[0];
 console.log(file)
 console.log(file.path)


            client.query("select * from import_csv($1,$2)",[log2,file.path], function(err, result) {
                done()
            req.session.user2 = result
            if (err){
                res.end()
                return console.error("error")
           }
            res.render('import_csv_file',{jour:result}})
          })
           })

и html

<form method="post" action="inside_teacher_import_ocenka" target="_blank" enctype="multipart/form-data">
<p><input type="file" name="csv_ocenka">
<input type="submit" value="Отправить"></p>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...