ich verschiebe mein Quellfenster nach Ubuntu:
Fehler: Die meisten Middleware (wie Json) ist nicht mehr im Lieferumfang von Express enthalten und muss separat installiert werden. Siehe https://github.com/senchalabs/connect#middleware .
das ist meine Quelle, danke
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);
Bei express 4.x gibt es eine Reihe von Änderungen. Wie der Fehler besagt, wurde die gesamte Middleware entfernt.
Aktualisieren Sie Ihre package.json, um die "neuen" Pakete aufzunehmen. Eine grundlegende Liste finden Sie hier und eine vollständige Liste hier
Wenn Sie Ihren Code von oben verwenden, benötigen Sie Folgendes:
// package.json
{
"dependencies":
{
"express":"*",
"body-parser":"*"
}
}
Aktualisieren Sie dann Ihre Quelle, um die neuen Änderungen widerzuspiegeln:
// 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());
Beachten Sie, dass app.use (app.router) ebenfalls entfernt wurde.
wenn eine Middleware nicht mit express gebündelt ist, verwenden Sie das express-Schlüsselwort nicht, wenn Sie sie verwenden.
an Stelle von -
app.use(express.bodyParser());
schreib Dies -
app.use(bodyParser());
In meinem Fall habe ich ein Paket exportiert, das ich nicht installiert habe. Nach der Installation des Pakets verschwand mein Problem. Die Middleware, die ich verwendete, ist
app.use(express.json())
Überprüfen Sie Ihre package.json-Datei, ob Sie das Paket installiert haben oder nicht. Wenn es nicht installiert ist, erhalten Sie möglicherweise denselben Fehler.