【发布时间】:2020-11-10 09:33:23
【问题描述】:
我正在尝试从我拥有的外部文件中导入一个函数,其中包含一个承诺。 承诺的解决方案是应该返回的,但我收到一条错误消息: 请求的模块“./functions.js”不提供名为“getOkapiToken”的导出 当我直接在服务器中运行 POST 请求时,它可以正常工作,但我需要将它放在一个单独的文件中,因为将来它将被几个不同的文件使用。 这也是我第一次使用 Promise,所以我不确定我是否正确处理了它(尽管在处理第一个错误之前我无法注册任何错误)。
functions.js 文件构建如下:
import post from 'axios';
export function getOkapiToken(url, user, password) {
//Get username and password for API
const auth = {
"username": user,
"password": password
};
//Create headers for POST request
const options = {
method: 'post',
data: auth,
headers: {
'Content-Type': 'application/json',
'Content-Length': auth.length,
'X-Okapi-Tenant': 'diku'
}
};
//Make API post call
post(url+':9130/authn/login', options)
.then(response => {
return(response.headers['x-okapi-token'])
}).catch((err) => {
return(`There was an error 2: ${err}`)
})
}
我尝试按如下方式导入它:
import { getOkapiToken } from './functions3.js'
import settings from './jsons/config.json';
let OkapiKey = await new Promise((resolve,reject) => {
//Call function to make API post call
let keytoken = getOkapiToken(settings.url,settings.userauth,settings.passauth)
console.log(`There was an error: ${keytoken}`)
if (keytoken.length == 201) {
resolve(keytoken)
} else {
reject('There was an error')
}
})
OkapiKey.then((data) => {
console.log(data)
})
.catch((err) => {
console.error('I have an error:'+err.code);
})
【问题讨论】:
-
把
module.export改成export ...:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
@Marc 谢谢!我不得不将整个导出更改为“导出函数”语法,但这似乎奏效了!结果仍然未定义,但至少现在我得到了回应!
标签: node.js function import promise