@whyamiscott

Почему не приходят данные с формы?

Server:
var express = require('express'),
	bodyParser = require('body-parser'),
	app = express(),
	server;

app.set('view engine', 'jade');
app.use(bodyParser.urlencoded({extended: true}));

app.route('/new')
	.get(function(req, res) {
		res.render('new'); 
	})
	.post(function(req, res) {
		console.log(req.body);
		res.redirect('/new');
	})
	
server = app.listen(3000);


Template:
form(method='post' action='/new' enctype='multipart/form-data')
	fieldset
		label(for='first') First name
		input#first(name=first type='text')
		br
		label(for='last') Last name
		input#last(name=last type='text')
		br
		label(for='login') Login
		input#login(name=login type='text')
		br
		input(type='submit' value='Add')


При нажатии на кнопку отправки формы, в консоле выводится лишь {}. В чём может быть проблема?
  • Вопрос задан
  • 544 просмотра
Решения вопроса 1
@Aves
1. Атрибуты name в input не устанавливаются, нужны кавычки (name='first'), или передавать значения res.render('new', {first: 'first', last: 'last', login: 'login'}); .
2. body-parser не обрабатывает multipart/form-data, либо использовать другой модуль, либо enctype='application/x-www-form-urlencoded'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Потому что body-parser не поддерживает multipart/form-data
https://github.com/expressjs/body-parser читайте ридми
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы