Javascript Nodejs可以';t输出函数
我正在创建一个api实例的通用实例,以保持代码干燥。导出函数时遇到问题: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)
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代码>。