无法在节点js中检索请求参数

时间:2016-08-25 19:08:11

标签: angularjs node.js

在我的角度js工厂中,我正在进行ajax调用以将输入模型值传输到服务器端(节点js)但是当我尝试检索它时,我看到未定义的' 。

angular js:

app.get('/gethistorydata',function(req,res){
console.log("--------------->>>>>>");

console.log("stock name = "+req.params.data);
    //res.cookie();
//res.sendFile("F:/customer/public/index.html");
});

在节点js中,我有以下内容:

<select class="selectpicker">

<option data-icon="" value="00:00-23:59">All Day (12am-11:59pm)</option>
<option data-icon="fa fa-coffee" value="05:00-08:59">Morning (5am-8:59am)</option>
<option data-icon="fa fa-briefcase" value="09:00-16:59">Business Hours (9am-4:59pm</option>
<option data-icon="fa fa-moon-o" value="17:00-20:59">Evening (5pm-8:59pm)</option>
<option data-icon="fa fa-clock-o" value="00:00-11:59">AM Hours (12am-11:59am)</option><option data-icon="fa fa-clock-o" value="12:00-23:59">PM Hours (12pm-11:59pm)</option><option data-icon="fa fa-clock-o" value="00:00-05:59">12am-5:59am</option>
<option data-icon="fa fa-clock-o" value="06:00-11:59">6am-11:59am</option>
<option data-icon="fa fa-clock-o" value="12:00-17:59">12pm-5:59pm</option>
<option data-icon="fa fa-clock-o" value="18:00-23:59">6pm-11:59pm</option>

</select>

req.params.data未定义。什么语法错了?

1 个答案:

答案 0 :(得分:1)

req.params指的是url路径参数。因此,您必须在路线中添加一个才能获得支持。例如,定义了此路由的/gethistorydata/123请求(请注意最后添加的/:id):

app.get('/gethistorydata/:id, function(req, res) {
  console.log('my id is ' + req.params.id');
});

会记录&#34;我的ID是123&#34;。

我认为您正在寻找req.query。你的stock对象是什么样的?如果看起来像{"price": 123} angular会将请求修改为/gethistorydata?price=123,您可以将代码更改为:

app.get('/gethistorydata, function(req, res) {
  console.log('my stock price is ' + req.query.price');
});

会记录&#34;我的股票价格是123&#34;

有关更多示例http://expressjs.com/en/api.html#req.query

,请参阅文档