我将源窗口移动到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);
答案 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文件是否安装了软件包。如果未安装,则可能会出现相同的错误。