Javascript 使用节点JS获取API数据
我正在尝试使用NodeJS获取API数据。我正在使用这个节点包来实现这一点 该软件包的文档编制非常简单Javascript 使用节点JS获取API数据,javascript,node.js,Javascript,Node.js,我正在尝试使用NodeJS获取API数据。我正在使用这个节点包来实现这一点 该软件包的文档编制非常简单 global.fetch = require('node-fetch') const cc = require('cryptocompare') cc.price('BTC', ['USD', 'EUR']) .then(prices => { console.log(prices) }) .catch(console.error) 我已经用它测试过了,它很有效 但是,当我将软
global.fetch = require('node-fetch')
const cc = require('cryptocompare')
cc.price('BTC', ['USD', 'EUR'])
.then(prices => {
console.log(prices)
})
.catch(console.error)
我已经用它测试过了,它很有效
但是,当我将软件包安装到我的应用程序中时,我在控制台中看不到任何输出
我正在使用JetBrains WebStorm,以下是我采取的步骤
/routes/index.js中添加了以下内容
var express = require('express');
var router = express.Router();
global.fetch = require('node-fetch');
const cc = require('cryptocompare');
/* GET home page. */
cc.price('BTC', ['USD'])
.then(prices => {
console.log(prices)
}).catch(console.error);
router.get('/', function(req, res, next) {
res.render('index', {
title: 'Example'
});
});
module.exports = router;
但控制台日志中没有显示任何内容。我尝试将global.fetch
移动到根目录中的app.js
,但也没有任何效果
我做错了什么?不知道为什么你什么都没有得到。我试着用同样的步骤,得到了结果
我只是做了一件不同的事情,我将整个代码粘贴到一个名为abc.js的文件中
然后我在命令行中这样运行它
cc.price('BTC', ['USD'])
.then(function(prices){
console.log(prices)
}).catch(function(error){
console.log(error);
});
节点abc.js
我得到了这个结果
{美元:2797.06}
你能再试一次吗?因为它对我来说太棒了。如果你遇到任何问题,请告诉我
继续
因此,如果您想在index.js中使用它,那么您可以这样做
cc.price('BTC', ['USD'])
.then(function(prices){
console.log(prices)
}).catch(function(error){
console.log(error);
});
我刚把它的syntex从es6改成了es5
var express = require('express');
var router = express.Router();
global.fetch = require('node-fetch');
const cc = require('cryptocompare');
/* GET home page. */
router.get('/', function(req, res, next) {
cc.price('BTC', ['USD'])
.then(prices => {
res.render('index', {
title: prices
});
}).catch(console.error);
});
module.exports = router;
这对您很有用请尝试去掉第二个示例中的方括号。文档中没有。什么方括号?美元附近的货币
?嗯,这与“传递一对货币”下的示例不同。都是一样的,您仍然可以在一个数组中传递一个项目。在任何情况下,去掉方括号都没有多大作用。是的,我刚刚测试了这个,它可以工作。但是我想将数据传递到index.js
route,最终能够在页面上而不是控制台上打印数据。@Halnex哦,等等,我以为你在看IDE的控制台。您正在从路由器外部获取数据,这意味着在服务器开始运行时,这种情况会立即发生。如果将fetch调用移动到路由器内部,并在fetch回调内部进行渲染,您应该会在浏览器控制台中看到数据。@spicypumpkin我一直试图将其移动到路由器内部,并在index.js
上进行渲染,但IDE不断抛出语法错误。我无法将提取片段移动到标题
所在的数组中。@Halnex什么数组?您应该能够通过闭包或作为对象属性访问价格
。你能告诉我语法错误在哪里吗?也许把它编辑成你的原始问题,我就可以发布一个合理的答案。res.render('index',{title:'Example'})代码>此数组。假设我想打印价格而不是示例
-传递cc.price('BTC','USD')
返回[object Promise]
-我对均值堆栈是新手,我希望举个例子。这返回[object object]
的标题
。我是个新手。我真的很感激你的耐心。@Halnex,没问题。如果你愿意,我可以给你发一封电子邮件,这本书真的很好,很容易理解。如果需要,请告诉我。