[英]req.body throws an empty {}
I am using body-parser
but it's not working and I don't know what the problem is.我正在使用
body-parser
,但它不起作用,我不知道问题出在哪里。
app.js应用程序.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const bodyParser = require('body-parser');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
//bodyParser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
index.js index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', redirection, function(req, res, next) {
res.redirect('index', {title: 'Home'});
});
router.get('/country', function(req, res, next) {
// CountryName
res.render('country',
{
title: 'Home',
mainJS: 'main.js',
//country: req.body.countries
});
console.log(req.body)
});
function redirection(req, res){
if (req.url == '/'){
res.redirect('/country');
}
}
module.exports = router;
In this code it throws {}在此代码中,它抛出 {}
What is the problem?问题是什么?
Your server only receives a request body in POST (or PUT or PATCH) operations, not in GET operations.您的服务器仅在POST (或 PUT 或 PATCH)操作中接收请求正文,而不是在GET操作中。 You don't have
router.post()
in your sample code, so it seems you are not handling POSTs.您的示例代码中没有
router.post()
,因此您似乎没有处理 POST。 Therefore, no req.body
.因此,没有
req.body
。
You can find your https://example.com/?query=parameters&query2=parameters
at req.params.query
and req.params.query2
.您可以在
req.params.query
和req.params.query2
找到您的https://example.com/?query=parameters&query2=parameters
。
You can't use the location bar of a browser to do a POST: they from a form posts orxhr / fetch operations.您不能使用浏览器的位置栏进行 POST:它们来自表单发布或xhr / fetch操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.