Я изучаю node.js с экспрессом. Я довольно новичок, и это мой первый проект без каких-либо учебных пособий.
Приложение будет использовать ejs для шаблонов, а я использую express.json () для анализа данных из формы. Не использует body-parser, так как express теперь делает это из коробки.
Всякий раз, когда я console.log (req.body), он появляется как пустая строка. Когда я пытаюсь указать console.log (req.body.name) или любое другое поле формы, оно возвращается как неопределенное.
Пожалуйста, помогите, я понятия не имею, в чем проблема, и это никогда не было проблемой ни с одним из моих предыдущих приложений практики.
Вот мой соответствующий код:
в app.js
// Require routes
const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
//
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//
app.use('/', indexRouter);
app.use('/users', usersRouter);
В моей форме (register.ejs):
<form action="/users/register" method="POST">
<div class="formGroup">
<label for="name">Name</label>
<input type="text" name="name" placeholder="Full name">
</div>
<div class="formGroup">
<label for="username">Username</label>
<input type="text" name="username" placeholder="Enter any username">
</div>
<div class="formGroup">
<label for="email">Email</label>
<input type="email" name="email" placeholder="Enter your email">
</div>
<div class="formGroup">
<label for="password">Password</label>
<input type="password" name="password">
</div>
<div class="formGroup">
<label for="password2">Confirm password</label>
<input type="password" name="password2">
</div>
<div class="formGroup">
<label for="about">About</label>
<textarea name="about" placeholder="Say a little bit about yourself..."></textarea>
</div>
<div class="formGroup">
<input type="submit" name="submit" value="Submit">
</div>
</form>
В моем файле маршрута (users.js)
router.post('/register', (req, res, next) => {
console.log(req.body);
const newUser = {
name: req.body.name,
username: req.body.username,
email: req.body.email,
password: req.body.password,
about: req.body.about
}
console.log(newUser);
res.redirect('/users');
});
Спасибо за любой ответ!