Требуется кто-нибудь пустой - PullRequest
0 голосов
/ 21 октября 2019

Я знаю, что этот вопрос задавался несколько раз, но я хотел знать, как использовать req.body в этом конкретном случае, так как я не могу понять, где разместить app.use (body-parser).

У меня есть служба маршрутизатора,

const {FileUtillities} = require('hex-utilities');

class TransactionRouter {
  constructor(service) {
    service.addRouter(this);
  }
router() {
    const router = this.Router();
    router.post('/transaction', this.postTransaction.bind(this));
    return router;
  }
  postTransaction(req, res) {
    const amount = req.body.amount;
    const fromAccount = req.body.fromAccount;
    const toAccount = req.body.toAccount;
    return this.service.sendTransaction(fromAccount, toAccount, amount, res);
  }
}
module.exports = TransactionRouter;

Мой запрос здесь появляется {}. Как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

На ум приходят два варианта:

Перед обработкой маршрута или прокладкой его:

const {FileUtillities} = require('hex-utilities');
const bodyParser = require('body-parser')

class TransactionRouter {
  constructor(service) {
    service.addRouter(this);
  }
router() {
    const router = this.Router();
    // here is good
    router.use(bodyParser.json())
    // or inline
    router.post('/transaction', bodyParser.json(), this.postTransaction.bind(this));
    // router.post('/transaction', this.postTransaction.bind(this));
    return router;
  }
  postTransaction(req, res) {
    const amount = req.body.amount;
    const fromAccount = req.body.fromAccount;
    const toAccount = req.body.toAccount;
    return this.service.sendTransaction(fromAccount, toAccount, amount, res);
  }
}
module.exports = TransactionRouter;
0 голосов
/ 21 октября 2019

Вы можете использовать его следующим образом:

router.post('/transaction', bodyParser.json(), this.postTransaction.bind(this));

В идеале это должно быть сделано в том месте, где вы создали экземпляр экспресс-приложения, например: var app = express(); и передать промежуточное ПО bodyparserк приложению, используя app.use(bodyParser.json())

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