0
学习表达并面临问题。在我创建模块body-parser后,开始不起作用。所有请求都是complited,但数据不解析。为什么POST的请求不解析?
let express = require('express');
let bp = require('body-parser');
let dishRouter = require('./dishRouter');
let app = express();
let hostname = 'localhost';
let port = 8080;
dishRouter.use(bp.json()); //don't work
app.use('/dishes', dishRouter);
app.use(express.static(__dirname + '/public'));
app.listen(port, hostname, function(){
console.log(__dirname);
console.log(`Server has running at http://${hostname}:${port}`);
});
//我dishRouter模块
let express = require('express');
let router = express.Router();
router.route('/')
.all(function(req, res, next){
res.writeHead(200, {'Content-type': 'text/plain'});
next();
})
.get(function(req, res, next){
res.end('We will dish for you');
})
.post(function(req, res, next){
res.end('Will add the dish:' + req.body.name + ' with details: ' + req.body.description);
})
.delete(function(req, res, next){
res.end('Deleting all dishes');
});
module.exports = router;
你确定你用'Content-Type的发送您的请求:应用程序/ json'?你如何执行这些请求? – mscdex
我使用邮差,当我的代码在路由模块是在一个文件与主代码,所有warks完美。现在所有的请求都可以工作,但不工作body-parser。可能是出口模块问题? –
我决定这个问题。问题在我的字符串dishRouter.use。正如我认为的对象,返回express.Pouter()没有方法使用。需要写:app.use(bp.json)。想通了,这是我的错误。谢谢你们。 –