connect.bodyParser 不是函数

connect.bodyParser is not a function

我对 node.js 完全陌生。我试图在连接模块中使用 bodyParser,但错误消息显示 TypeError: connect.bodyParser is not a function。我的代码(简化版)如下;我可以用什么代替 connect.bodyParser

  var connect = require('connect');
  var util = require('util');
  var form = require('fs').readFileSync('form.html');

  var app = connect()
    .use(connect.bodyParser())
    .use(connect.limit('64kb'))
    .use(function(req, res){
      if(req.method === 'POST'){
        res.end(util.inspect(req.body));
      }
      if(req === 'GET'){
        res.writeHead(200, {'Content-Type' : 'text/html'});
        res.end(form);
      }
    }).listen(3000);

您必须使用最新的 connect 模块。在 connect 3+ 版本中,您不再有 bodyParser 方法。它已经被移动到一个完全不同的它自己的包中,叫做 body-parser。阅读 this.

像这样使用它:-

var express = require('express');
//console.log(express.address());
var router = express.Router();
var bodyParser = require('body-parser');
var bcrypt = require('bcryptjs');
var ObjectId = require('mongodb').ObjectID;

router.use(bodyParser.urlencoded({ extended: false }));
router.use(bodyParser.json());

就像 this answer 一样,connect 似乎已被弃用,因此 bodyParser 不再那样工作。所以你必须用 npm install body-parser 单独安装它,然后像 var bodyParser = require('body-parser')

一样使用它