1
這裏是我的server.js,獲取JSON數據到控制器
const express = require("express");
var app = express();
var cons = require('consolidate');
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.engine('html', cons.ejs);
app.set('view engine', 'html');
app.get("/getAllData", function(req, res) {
GPSDataSchemaModel.find({}, function(err, result) {
if (err) throw err;
if (result) {
res.render("index.ejs", {
dbData: result
});
} else {
res.send(JSON.stringify({
error: 'Error'
})
)}
})
})
app.get("/onmap", function(req, res) {
console.log("Query type: " + typeof(req.query))
console.log("Body type: " + typeof(req.body))
console.log("Parameters type: " + typeof(req.params))
res.send(req.query)
})
這裏是我的index.ejs,
<table class="table table-striped table-bordered" id="myTable">
<thead>
<tr>
<td>In Map</td>
</tr>
</thead>
<tbody>
<% for(var i=0; i < dbData.length; i++) { %>
<tr>
<td><a href="/onmap?<%= JSON.stringify(dbData[i]) %>" class="btn btn-info" role="button">Map</a></td>
</tr>
<% } %>
</tbody>
</table>
MongoDB中的數據格式如下所示,
{
"_id": {
"$oid": "58ad111590c50e1ca0c1f352"
},
"deviceID": "group-6-GPS",
"deviceTime": "04:41:37",
"deviceDate": "2016/06/07",
"receiveTime": "10:18:29",
"receiveDate": "2017/02/22",
"latitude": 17.08,
"longitude": 15.07,
"fix": 0,
"satellites": 0,
"altitude": null,
"deviceSpeed": 0,
"devicecourse": 0,
"deviceVariation": null,
"__v": 0
}
點擊地圖按鈕後,我得到這樣的數據,
{
{"_id":"58ad111590c50e1ca0c1f352","deviceID":"group-6-GPS","deviceTime":"04:41:37","deviceDate":"2016/06/07","receiveTime":"10:18:29","receiveDate":"2017/02/22","latitude":"17.08","longitude":"15.07","fix":0,"satellites":0,"altitude":null,"deviceSpeed":0,"devicecourse":0,"deviceVariation":null,"__v":0}: ""
}
上述兩項請注意數據格式都不相同。
我需要從第二個數據訪問緯度和經度。我怎樣才能做到這一點?或者,我可以做什麼來獲得第二個數據爲JSON?
代碼@ p0k8_非常感謝。它確實有效。 – Tareq