私はExpress 4.13.3を使用しています。私のreq.body
はGETリクエストでは常に空です。これは、POST要求時に正しいデータで満たされています。どうしてこれなの? Expressのドキュメントでこの相違点を参照することはできませんでした。`req.body`はGET要求で常に空です
マイExpressの設定は:
function onError(err, req, res, next) { // eslint-disable-line no-unused-vars
// The error id is attached to `res.sentry` to be returned
// and optionally displayed to the user for support.
res.statusCode = 500; // eslint-disable-line no-param-reassign
res.end(`${res.sentry}\n`);
}
const render = require('../public/assets/SSR');
const app = express();
// sentry.io
app.use(raven.middleware.express.requestHandler(process.env.SENTRY_DSN));
const db = connectDb();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(cookieParser());
if (process.env.NODE_ENV === 'dev') {
// Hot reloading using existing express server
const compiler = webpack(webpackConfig);
app.use(webpackDevMiddleware(compiler, {
noInfo: true,
publicPath: webpackConfig.output.publicPath,
}));
app.use(webpackHotMiddleware(compiler));
app.use(logger('dev'));
}
if (process.env.NODE_ENV === 'prod') {
app.use(helmet());
}
configPassport(app, passport, db);
configRoutes(app, passport, db);
app.use(ua.middleware(process.env.GA_TRACKING_ID, { cookieName: '_ga' }));
// sentry.io
// The error handler must be before any other error middleware
app.use(raven.middleware.express.errorHandler(process.env.SENTRY_DSN));
// Optional fallthrough error handler
app.use(onError);
app.get('*', render.default);
const port = process.env.PORT || 3000;
app.listen(port);
console.log(`Listening on port ${port}`);
console.log(`You are working in ${process.env.NODE_ENV} `);
あなたのノード/エクスプレス構成の一部を追加してください、おそらくこれはあなたに有用である可能性http://stackoverflow.com/questions/9177049/express-js-req-body-undefined – sebasaenz
@sebasaenzが追加されました特急設定 – ABC
可能性のある[このステートメントは正しいですか? HTTP GETメソッドには常にメッセージ本文がありません](http://stackoverflow.com/questions/5216567/is-this-statement-correct-http-get-method-always-has-no-message-body) –