#node.js #express #httprequest #body-parser
Вопрос:
Я использую express для создания приложения mongodb auth0.
Мои просьбы сохраняют свое тело, когда их помещают в index.js, но как только я перехожу в другой файл js в проекте, он возвращает неопределенный, где сохраняются заголовки и другие атрибуты req.
index.js
const express = require('express') const app = express(); const port = 8000; var loginRoutes = require('./routes/login'); app.use(express.json()); const clientPromise = require('./mongodb-client'); app.use('/login', loginRoutes);
/routes/login.js
const express = require('express') router = express.Router(); const clientPromise = require('../mongodb-client'); const auth0 = require('../auth0-client'); const app = express(); app.use(express.json()); const {ObjectId} = require("mongodb"); //LOGIN USER router.post('/', async function(req, res) { console.log(JSON.stringify(req.body)); var data = { username: req.body.username, password: req.body.password }; auth0.passwordGrant(data, function (err, userData) { if (err) { // Handle error. } console.log(userData); }); res.send({'login': 'yes'}) }) module.exports = router;
Я предполагаю, что это как-то связано с express.json() и, возможно, с какой-то проблемой OOO? Но я использую поисковые системы и не могу понять, что нужно устранять дальше.
Ответ №1:
app.use(express.json());
должно произойти раньше var loginRoutes = require('./routes/login');
, чтобы тело запроса было проанализировано и успешно передано на дочерний маршрут входа.