将req.body分配给一个variables

我试图从传单层发布数据,然后通过express运行,并使用第三方模块返回一个数组。

如果我在这样的电话中规定了所需的ID

forecast = msw.forecast(1) 

它工作正常。 当我尝试使用来自post请求的spot_id时,它给了我这个:

 TypeError: Cannot use 'in' operator to search for 'units' in 1 

这是我在我的node.js服务器上使用的。 任何帮助将非常感激。

 var express = require('express'); var app = express(); var msw = require('msw-api'); var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); msw.set({ apiKey: 'my-api-key' , units: 'UK' }); app.post('/', function(req, res){ spot_id = req.body.spot_id forecast = msw.forecast(spot_id).then(function (forecast) { res.send(forecast) }); }); app.listen(3000, function () { console.log('Listening on port 3000!'); }); 

正如在注释中所讨论的, req.body.spot_id的值是默认的string, msw.forecast(spot_id)需要一个integer作为它的参数,因此是错误。

你所要做的就是将spot_idparsing为integer ,如下所示:

 var spot_id = parseInt(req.body.spot_id) 

作为参数进行forecast之前。