@HAbRAhabp

Почему не работает bodyparser?

Изучаю node.js
Помогите разобраться, почему не работает парсинг POST запросов
app.use(express.bodyParser());
Сам код:
// модули
var express = require('express'),
    jade = require ('jade'),
    app = express();

// генерация рандомного числа
function rand(min, max) {
    var i = (Math.random() * 32768) >>> 0;
    return (i % (min - max)) + min;
}

app.use(express.bodyParser());

app.set('view engine', 'jade');

app.get('/', function (req, res) {
    res.render('index', { title: 'title', message: rand(1, 10000)});
})

app.post('/', function (req, res) {
    console.log (req.body.user);
    debugger;
    res.render('index', { title: 'title', message: req.body.user.name});
})

app.get('/user/:id/red', function (req, res) {
    res.send('Hello user ' + req.params.id)
})

var server = app.listen(3000)

Вылетает эксепшн
"D:\work\WebStorm 11.0.2\bin\runnerw.exe" C:\nodejs\node.exe --debug-brk=59643 --nolazy server.js
Debugger listening on port 59643
d:\nodep\node_modules\express\lib\express.js:99
      throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.');
      ^

Error: Most middleware (like bodyParser) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
    at Function.__dirname.forEach.Object.defineProperty.get (d:\nodep\node_modules\express\lib\express.js:99:13)
    at Object.<anonymous> (d:\nodep\server.js:12:16)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.runMain [as _onTimeout] (module.js:430:10)
    at Timer.listOnTimeout (timers.js:92:15)

Process finished with exit code 1

index.jade
html
    head
        title!= title
    body
        h1#master.test!= message
        hr
        form(method="POST", action="/")
            input(type="text", name="user[name]", placeholder="name")
            input(type="password", name="user[pass]", placeholder="pass")
            input(type="submit")
  • Вопрос задан
  • 1677 просмотров
Решения вопроса 1
un1t
@un1t
Ну написано же
Most middleware is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы