gpt4 book ai didi

javascript - 如何使用 node.js Express 和 Mikeal 的 npm-request 存储来自 API 调用的值?

转载 作者:行者123 更新时间:2023-12-02 17:06:07 25 4
gpt4 key购买 nike

我刚刚开始尝试使用 Node Express,并希望在 HTML 中显示来自 API(我用 Ruby/Sinatra 制作)的一些文本。我可以 console.log() 我想要的文本,但在将其保存到变量以在我的 ejs 文件中调用时遇到问题。如何从调用 API 时获得的 JSON 中获取值并将其放置在我的页面上?这是我的代码。

这是我的主要 Js 文件。

<小时/>
var express = require('express');
var app = express();

var routes = require('./routes');
app.set('view engine', 'ejs');

app.get('/', routes.index);
app.get('/about', routes.about);

var server = app.listen(3000, function() {
console.log('look at port 3000')
})

这是我的索引路线

<小时/>
var request = require('request');
var resq = request("http://ancient-falls-7604.herokuapp.com/users/1/posts", function(error, response, body) {
console.log (JSON.parse(body)["user_posts"][1]["post"]["body"])
})
// this thing I just console.logged is what I want saved to a var

exports.index = function(req, res){
res.render('main', {
title: 'Some Random Title',
sinatra: "JSON CALL WILL EVENTUALLY GO"
});
};

最后这是我的 ejs 文件

<小时/>
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<h1> <%= title %></h1>
<p><%= sinatra %></p>

</body>
</html>

最佳答案

只需在索引方法中发出请求,将其保存到变量中并调用渲染:

exports.index = function(req, res){
request("http://ancient-falls-7604.herokuapp.com/users/1/posts", function(error, response, body) {
var json = JSON.parse(body);
res.render('main', {
title: json.user_posts[0].post.title,
sinatra: json.user_posts[0].post.body
});
});
};

要实现这一点,请确保 View 文件的名称为 main.ejs,因为您在渲染方法中调用 main

关于javascript - 如何使用 node.js Express 和 Mikeal 的 npm-request 存储来自 API 调用的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25225240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com