如何将客户端值从浏览器端传递给node.js控制器

时间:2014-07-27 18:41:59

标签: javascript node.js express dust.js

我正在构建一个简单的nodejs应用程序并在客户端使用灰尘。我试图从用户位置获取lat,lng并想要进行API调用 使用node js express框架。所以我从地理位置api得到客户端的lat,lng。现在我想将lat,lng传递给控制器​​,以便我可以查询 用于显示用户内容的API。对不起,如果这是非常基本的。我是nodejs和dust的新手。到目前为止我尝试了什么?  我尝试使用jquery提交表单  2.设置一些dom值等

$(document).ready( function() {
           var options = {
             enableHighAccuracy: true,
             timeout: 5000,
             maximumAge: 0
           };
           function success(pos) {
             var crd = pos.coords;
             document.querySelector("[name='latitude']").value = crd.latitude;
             document.querySelector("[name='longitude']").value = crd.longitude;
             console.log('Latitude : ' + crd.latitude);
             console.log('Longitude: ' + crd.longitude);
           };
           function error(err) {
             console.warn('ERROR(' + err.code + '): ' + err.message);
           };
           navigator.geolocation.getCurrentPosition(success, error, options);
    });

控制器代码:

module.exports = function (router) {
    router.get('/', function (req, res) {
      //How do I pass the lat, lng from the client to controller?
    });
}

1 个答案:

答案 0 :(得分:2)

只需在客户端对路径路径进行ajax调用,然后在路由器回调中获取已发送的数据

客户端

//Make the ajax request
$.post("/postLatLng",{lat:latVariable,lng:lngVariable});

节点

//hanlde the post request to /postLatLng
router.post('/postLatLng', function (req, res) {
    var lat = req.param("lat");
    var lng = req.param("lng");
    //...
});

Express api