Javascript Nodejs可以';t输出函数

Javascript Nodejs可以';t输出函数,javascript,node.js,Javascript,Node.js,我正在创建一个api实例的通用实例,以保持代码干燥。导出函数时遇到问题: TypeError: request is not a function index.js var express = require('express'), app = express(); const axios = require("axios"); const request = require("./request"); app.get("/api", (req, res)

我正在创建一个api实例的通用实例,以保持代码干燥。导出函数时遇到问题:

TypeError: request is not a function
index.js

var express   = require('express'),
    app       = express();
const axios     = require("axios");
const request = require("./request");


app.get("/api", (req, res) => {
  request({
    method: 'get',
    url: 'https://jsonplaceholder.typicode.com/posts/1'
  }).then((resp) => {
    console.log(resp);
  })
});


app.listen(3000);
request.js

const axios     = require("axios");

/**
 * Create an Axios Client with defaults
*/
const client = axios.create({
//  baseURL: constants.api.url
});



/**
 * Request Wrapper with default success/error actions
 */
 module.exports.request = function(options) {
  const onSuccess = function(response) {
    console.debug('Request Successful!', response);
    return response.data;
  }

  const onError = function(error) {
    console.error('Request Failed:', error.config);

    if (error.response) {
      // Request was made but server responded with something
      // other than 2xx
      console.error('Status:',  error.response.status);
      console.error('Data:',    error.response.data);
      console.error('Headers:', error.response.headers);

    } else {
      // Something else happened while setting up the request
      // triggered the error
      console.error('Error Message:', error.message);
    }

    return Promise.reject(error.response || error.message);
  }

  return client(options)
            .then(onSuccess)
            .catch(onError);
}
最初的代码是用es6编写的,但我想node不能很好地工作,所以我想转换上面的函数,以便node可以运行它

module.exports.request = ...
您刚刚使用
请求
函数导出了一个对象。该对象不是函数


您刚刚使用
请求
函数导出了一个对象。该对象不是函数。

要在节点中执行此ES6样式,需要将方法定义为常量:

const onSuccess(响应)=>{
...
}
const onError(错误)=>{
...
}

然后
export{onSuccess,onError}

如果ES6在您的节点项目中不起作用,请安装babel。

要在节点中执行此ES6样式,您需要将方法定义为常量:

const onSuccess(响应)=>{
...
}
const onError(错误)=>{
...
}

然后
export{onSuccess,onError}

如果ES6在您的节点项目中不起作用,请安装babel。

node支持ES6。您可能需要将节点升级到最新版本。
请求index.js中对象中的
。您正在使用
module.exports.request=fx()
进行导出。要导出单个函数,请使用
module.exports=fx()
,因为您导出的是具有
request
属性的对象,而不是
request
函数本身,所以我非常确定您的导入语法应该是
const request=require(./request”)。request.Node支持ES6。您可能需要将节点升级到最新版本。
请求index.js中对象中的
。您正在使用
module.exports.request=fx()
进行导出。要导出单个函数,请使用
module.exports=fx()
,因为您导出的是具有
request
属性的对象,而不是
request
函数本身,所以我非常确定您的导入语法应该是
const request=require(./request”)。request