2017-03-04 108 views
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?

+0

代碼@ p0k8_非常感謝。它確實有效。 – Tareq

回答

1

如果你只是想提供查詢緯度和longitutude那麼,下面是提供的網址爲

http://localhost:3000/onmap?latitude=17.08&longitude=15.07

和解析的查詢將{"latitude":"17.08","longitude":"15.07"}

<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?latitude=<%= dbData[i].latitude %>&longitude=<%= dbData[i].longitude %>" class="btn btn-info" role="button">Map</a></td> 
     </tr> 
     <% } %> 
    </tbody> 
</table>