Пост внутри маршрутизатора get требует функцию обратного вызова, но получил [объект объекта] - PullRequest
0 голосов
/ 24 апреля 2020

Я знаю, что я подключаюсь к «route / dropbox». Когда я вызываю почту внутри маршрутизатора, я получаю сообщение об ошибке «Route.post () требует функцию обратного вызова, но получил [объект Object]»

App. js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var helmet = require('helmet');
var cors = require('cors');

var indexRouter     = require('./routes/index');
var usersRouter     = require('./routes/users');
var authRouter      = require('./routes/auth');
var dbRouter        = require('./routes/dropbox');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('combined'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(helmet());
app.use(cors());

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/auth', authRouter);
app.use('/db', dbRouter);

dropbox. js Вы можете видеть, что мой app.post настроен внутри маршрутизатора. Ошибка происходит, когда я вызываю этот пост. Я написал это неправильно?

var express = require('express');
var router = express.Router();
const dotenv = require('dotenv');
dotenv.config();

var app = express();

router.get('/getAllFolders', function (request, response, next)
{       
        app.post('https://api.dropboxapi.com/2/files/list_folder',
        {
            headers: 
            {
                'Content-Type' : 'application/json', 
                'Authorization' : process.env.DB_AUTH
            },
            data: 
            {
                'path': '',
                'recursive': false,
                'include_media_info': false,
                'include_deleted': false,
                'include_has_explicit_shared_members': false,
                'include_mounted_folders': true,
                'include_non_downloadable_files': false
            }
        })
        .then(function (r) 
        {
            res.send(r);        
        })
        .catch(function (e) 
        {       
            res.send(e);
        }); 

}); 

module.exports = router;

1 Ответ

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

app является локальным express экземпляром. app.post устанавливает локальный обработчик для запроса post, аналогично router.post.

Используйте клиентскую библиотеку http, например ax ios.

const axios = require('axios');
axios.post('https://api.dropboxapi.com/2/files/list_folder', data, options)
  .then(function (r) {
    res.send(r);
  })
  .catch(function (error) {
    res.status(500);
    res.send(error);
  });
...