嗨,我想知道我可以用来将其“结果”部分仅提取到txt文件中的任何方法。有效负载是从设备的POST请求中提取到我自己的服务器的。例:
{
"cid": "042071004033",
"time": 1593673402,
"front_vaule": 94,
"scale_out_x": 1,
"scale_out_y": 0.5,
"sharpen_ness": 89,
"track_id": 155,
"type": 1,
"upload_face_size": 120,
"upload_id": 8,
"result": {
"person_id": 123456,
"person_name": "",
"age": 0,
"sex": "male",
"temperature": 37,
"confidence": 0,
"person_type": 0,
"facemask": 1
}
我要保存到txt文件的唯一JSON负载是
"person_id": "",
"person_name": "",
"age": 0,
"sex": "male",
"temperature": 37,
"confidence": 0,
"person_type": 0,
"facemask": 1
以下是我当前的代码,请告诉我在哪里插入您建议的代码。
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const router = express.Router();
var fs = require('fs');
app.use(bodyParser.json({ limit: '10mb', extended: true, parameterLimit: 1000000 }));
app.use(bodyParser.urlencoded({ limit: '10mb', extended: true, parameterLimit: 1000000 }));
app.post('/face', (req, res) => {
console.log('POST');
//console.log(req.body);
data = req.body;
//console.log(data);
res.status(200).json('200OK');
//string data from JSON to txt and overwrite existing txt data
var data = JSON.stringify(data.result, null, 2);
//console.log(data.result.person_id);
fs.writeFileSync(`${data.result.person_id}-database.txt`, data, function (err) {
if (err) {
console.log('Error logging data to txt file!');
} else {
console.log('Logged into text file successfully!');
}
})
});
const server = app.listen(9000, () => {
console.log('server listening on port', server.address().port);
});
错误日志:
POST
TypeError: Cannot read property 'person_id' of undefined
at C:\Users\gohyu\Desktop\nodetestapi\server.js:20:37
at Layer.handle [as handle_request] (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\layer.js:95:5)
at C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\index.js:335:12)
at next (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\index.js:275:10)
at urlencodedParser (C:\Users\gohyu\Desktop\nodetestapi\node_modules\body-parser\lib\types\urlencoded.js:82:7)
at Layer.handle [as handle_request] (C:\Users\gohyu\Desktop\nodetestapi\node_modules\express\lib\router\layer.js:95:5)
只做就足够了JSON.stringify(data.result)
。但是,这是一个简单的对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句