为了更清楚地说明如何使其工作(因为即使找到答案后我仍然苦苦挣扎了一段时间!),以下是我所采取的步骤:
如上所述,在 $APP_HOME/server/middleware.json 中,将 body-parser 添加到“parse”部分:
{
"initial:before": {
"loopback#favicon": {}
},
"initial": {
"compression": {},
"cors": {
"params": {
"origin": true,
"credentials": true,
"maxAge": 86400
}
}
},
"session": {
},
"auth": {
},
"parse": {
"body-parser#json": {},
"body-parser#urlencoded": {"params": { "extended": true }}
},
"routes": {
},
"files": {
},
"final": {
"loopback#urlNotFound": {}
},
"final:after": {
"errorhandler": {}
}
}
接下来,我将解析器设置添加到$APP_HOME/server/server.js中:
var loopback = require('loopback');
var bodyParser = require('body-parser');
var multer = require('multer');
var boot = require('loopback-boot');
var app = module.exports = loopback();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(multer());
app.start = function() {
...
...
cont'd
那么,由于我不想乱搞自定义路由,我将以下内容添加到$APP_HOME/common/models/model.js中:
module.exports = function(Model) {
Model.incoming = function(req, cb) {
cb(null, 'Hey there, ' + req.body.sender);
}
Model.remoteMethod(
'incoming',
{ accepts: [
{ arg: 'req', type: 'object', http: function(ctx) {
return ctx.req;
}
}],
returns: {arg: 'summary', type: 'string'}
}
);
};
我现在可以使用$> slc run . 运行我的应用程序。
当我向端点提交请求时,它现在被正确地解析,这个世界一切都好。希望这能帮助其他人!