错误:大多数中间件(如json)不再与Express捆绑在一起,必须单独安装。请参阅

时间:2014-04-12 17:00:28

标签: mysql json node.js express

我将源窗口移动到ubuntu:

错误:大多数中间件(如json)不再与Express捆绑在一起,必须单独安装。请参阅https://github.com/senchalabs/connect#middleware

这是我的来源谢谢

var http = require('http');
var fs = require('fs');
var express = require('express');
var mysql = require('mysql');
var ejs = require('ejs');

var app = express();
app.use(express.bodyParser());
app.use(app.router);

3 个答案:

答案 0 :(得分:50)

快递4.x有很多变化。就像错误所说的那样,所有的中间件都被删除了。

更新您的package.json以包含“新”包,可以找到基本列表here和完整列表here

使用上面的代码,您只需要以下内容:

// package.json
{
  "dependencies":
  {
    "express":"*",
    "body-parser":"*"
  }
}

然后更新您的来源以反映新的更改:

// app.js
var http = require('http'),
    fs = require('fs'),
    express = require('express'),
    bodyParser = require('body-parser'),
    mysql = require('mysql'),
    ejs = require('ejs');

var app = express();
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

请注意,app.use(app.router)也已被删除。

答案 1 :(得分:3)

如果某些中间件未与express捆绑在一起,则在使用时不要使用express关键字..

而不是 -

app.use(express.bodyParser());

写下这个 -

app.use(bodyParser());

答案 2 :(得分:1)

就我而言,我正在导出一个没有安装的软件包,即Express软件包。安装软件包后,我的问题消失了。我使用的中间件是

app.use(express.json())

检查您的package.json文件是否安装了软件包。如果未安装,则可能会出现相同的错误。