将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_id
parsing为integer
,如下所示:
var spot_id = parseInt(req.body.spot_id)
作为参数进行forecast
之前。