javascript - 将参数传递给 Node.js 中的导入函数

标签 javascript node.js express async.js

我觉得这应该不难,但我是 Node.js 的新手(也是 JavaScript 的许多方面的新手)。我正在创建一个 Express 应用程序来返回从多个 API 获取的自行车位置数组;每个 API 都需要经度和纬度作为输入。因此,我将每个 API 调用分解为一个“模块”,并使用 npm 库“async”并行进行每个调用,并使用“axios”进行 API 请求。我可以在不将它分解成模块的情况下让它正常工作,但是一旦我将每个 API 调用分离到它自己的文件中,我就无法弄清楚如何将 lat 和 lng 传递给它。

这是我的 index.js

import async from 'async';
import {mobike} from './mobike.js';
import {spin} from './spin.js';

async.parallel([
    mobike, //How or where can I pass these parameters?
    spin
],
function(err, results) {
    console.log(results);
});

例如,这是我的 mobike.js 模块(为简洁起见,我将省略 spin.js)

import axios from 'axios';

export var mobike = function (lat, lng, callback){
  axios.get('https://mwx.mobike.com/mobike-api/rent/nearbyBikesInfo.do', {
    params: {
      latitude: lat, //35.2286324
      longitude: lng //-80.8427562
    },
    headers: {
      'content-type': 'application/x-www-form-urlencoded',
      'user-agent': 'Mozilla/5.0'
    }
  }).then( response => {
      callback(null, response.data.object)
  }).catch(error => {
      callback(error, null)
  })
}

当我尝试通过 mobike 传递参数时(如 mobike(1234,1234)),它不起作用。如何将 lat 和 lng 参数传递给 mobike.js 文件?

最佳答案

来自 a tutorial I found online ,看起来您需要将 mobikespin 函数包装在其他函数中,以便将您的数据与 async< 提供的回调函数一起绑定(bind) 模块。像这样:

var lat = 35.2286324;
var lng = -80.8427562;

async.parallel([
    function(callback) { mobike(lat, lng, callback); },
    function(callback) { spin(lat, lng, callback); },
],
function(err, results) {
    console.log(results);
});

关于javascript - 将参数传递给 Node.js 中的导入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145050/

相关文章:

node.js - 使用Ingress服务类型将 “express-gateway”部署到Google Kubernetes Engine时出现问题

node.js - 应用程序服务器和 REST API 服务器( Node )的单独端口

javascript - Node.js:是否可以为 python 交互式 shell (REPL) 制作适配器?

node.js - 第二次发布到 API 时出现 400(错误请求)

jquery - MongoDB:如何从 json 数据中找到一个值?

node.js - 其他网站的渲染方用 express

javascript - 如何仅在加载特定元素且位于标记中时调用函数

javascript onload 不工作但 onclick 工作 css 画线

javascript - 向 vue-webpack-boilerplate 添加 Express 后端

javascript - 在 Node.js/Express 中获取路由错误