Я работаю над небольшим серверным приложением, которое позволяет клиентам создавать пользователей.Я не могу разобрать требование.Я пытался читать везде в Интернете, но решение для меня недоступно.
У меня есть 2 файла в корне моего проекта.- server.js для конфигурации API и - app.js для конфигурации приложения
// app.js
const express = require('express');
const bodyParser = require('body-parser');
const router = require('./routes/index.routes');
const app = express();
// Parse incoming requests data
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(router);
Мои маршруты находятся в маршрутах / index.routes.js
const express = require('express');
const QuickCreditCtrl = require('../controller/controller');
const router = express.Router();
const baseUrl = '/api/v1';
router.post(`${baseUrl}/auth/signup`, QuickCreditCtrl.createUser);
//router.post(`${baseUrl}/auth/signin`, QuickCreditCtrl.loginUser);
module.exports = router;
И контроллеры на контроллере /controller.js
const user = require('../data/users');
class QuickCreditsCtrl {
createUser(req, res) {
console.log(JSON.stringify(req.body));
if (!req.body.name) {
return res.status(404).send({
status: '404',
message: 'name is required',
});
} else if(!req.body.email) {
return res.status(404).send({
status: 404,
message: 'email is required'
});
}
const userNew = {
id: user.length + 1,
email: req.body.email,
name: req.body.name,
password: 'user123',
};
user.push(userNew);
return res.status(200).send({
status: 200,
//message: 'New user added successfully',
userNew,
//data: userNew
});
}
}
const QuickCreditCtrl = new QuickCreditsCtrl();
//export default QuickCreditCtrl;
module.exports = QuickCreditCtrl;
Когда я использую Postman или curl, все в порядке, за исключением того, что я не могу получить доступ к req.body.Я не могу понять, почему, хотя я использую body-parser.
Что-то не так в моем коде?
Редактировать
Я пытаюсь упростить вещи, но явсе еще не может получить доступ к req.body.Я прочитал слишком много, но не могу найти решение своей проблемы.В приведенном ниже файле я пытаюсь сделать все в файле app.js, но тщетно:
const express = require('express');
const bodyParser = require('body-parser');
const db = require('./data/users')
const app = express();
// Parse incoming requests data
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/api/v1/auth/signup', (req, res) => {
const data = {
id: db.length + 1,
email: req.body.email,
firstN: req.body.firstN,
lastN: req.body.lastN,
password: 'Patie123',
};
db.push(data);
return res.status(200).send({
status: 200,
message: 'User created successfully',
data,
});
console.log(data);
});
module.exports = app;
Что на самом деле не так с моим кодом?Или как получить доступ к req.body?