我正在開發一個項目,在該項目中,我必須在多個表中存儲多個站點,一個路徑及其關係。我成功地存儲了停靠點和路線。而是存儲我需要獲取最近存儲的路線的id(自動生成的主鍵)和所有最近存儲的停靠點的關係。我通過運行查詢來查找它們以查找最新存儲的id的最大id。這是我的代碼:Sails.js查詢在函數結尾處運行
create: function (req,res,next)
{
var stopsArray = req.param('latLngArray');
var so="";
var totalBusStops = req.param('totalStops');
var routeToSave=new OneRoute();
routeToSave.routeName="This route";
routeToSave.totalStops=totalBusStops;
Routes.create(routeToSave, function routeCreated(err, routeToSave){
if(err) return next(err);
res.json(routeToSave);
}); // creating routes
for(var i=0;i<stopsArray.length;i++){
var us = new busStop();
us.lngPos = stopsArray[i].Lng;
us.latPos = stopsArray[i].Lat;
BusStop.create(us ,function stopCreated (err,us)
{
if(err) return next(err);
res.json(us);
}); // creating bus stops#
}
var currentRouteId = "";
Routes.query("select max(routeId) from routes", function(err, results) {
if(err){ res.json({ error: err.message }, 400);}
else{
currentRouteId = results[0]['max(routeId)'];
console.log("route ID: "+results[0]['max(routeId)']);
}
}); // max riute ID
var relation= new routeStopR();
relation.routeId=currentRouteId;
var currentStopId = "";
BusStop.query("select max(stopId) from busstop", function(err, results) {
if(err){res.json({ error: err.message }, 400);}
else{
currentStopId = results[0]['max(stopId)'];
console.log("Bus Stop ID: "+currentStopId);
}
});
relation.stopId=currentStopId;
console.log("");
console.log("relation Route: "+relation.routeId);
console.log("relation Stop: "+relation.stopId);
RouteStops.create(relation,function relationCreated (err,relation)
{
if(err) return next(err);
res.json(relation);
});
}
我面臨的問題是,得到的查詢在函數運行結束無論身在何處,我把他們的功能。由於這個原因,我無法使用我從查詢中得到的ID。任何在這方面的幫助將不勝感激。
我面臨的另外一個問題是,從busstop
表中得到max(stopId)
的查詢將返回舊數據的值。有時從routes
也有這個問題。
請幫我解決這個問題。