为什么是嵌套对象
kategorien:[对象]
我的node.js应用程序中未定义?
以下是来自katalogCtrl中的console.log的控制台日志:
var str = 'da(dd) | dasd(dsa) | dad(asdf) (fad(dfad) | dfasd |dada(dafs)) | adfs(daf)'
str.replace(/([\|])/g,'@'); --- not working.
server.js:
{ _id: '591c08ccb673741787b123c2',
bezeichnung: 'test',
__v: 0,
risiken: [ { bezeichnung: 'Naturgefahren', kategorien: [Object] } ] }
katalogCtrl:
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, application/json');
res.setHeader('Access-Control-Allow-Credentials', true);
res.setHeader("Content-Type", "application/json");
next();
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
router.route('/katalog/update').post(
authstrategies.authJWToken,
authstrategies.check_if_is_admin,
katalogCtrl.update_katalog);
这里来自客户端的呼叫(角度2):
exports.update_katalog = function (req, res) {
console.log(req.body);
}
来自客户端的console.log:
let headers = new Headers({ 'Content-Type': 'application/json' });
headers.append('Authorization', localStorage.getItem('token'));
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify(katalog);
console.log(body);
this.http
.post(this.CONSTANTS.APIURL+'/katalog/update', body, options)
.toPromise().
then(value => {
console.log(value);
})
.catch();
答案 0 :(得分:2)
console.log()
只会在打印内容时将对象递归到某个深度(2)。
您可以使用util.inspect()
调整深度:
const util = require('util');
...
console.log(util.inspect(req.body, { depth : null }));
或(使用6.4或更高版本的节点)set a default depth(这可行,因为console.log()
使用了util.inspect()
:
require('util').inspect.defaultOptions.depth = null;
或者输出JSON:
console.log('%j', req.body);
答案 1 :(得分:1)
risiken: [ { bezeichnung: 'Naturgefahren', kategorien: [Object] } ] }
kategorien: [Object]
kategorien
的{{1}}值不是undefined
,实际上是object
,可能包含正确的值。
尝试
console.log(body.risiken[0].kategorien);