在节点js中使用请求数据

时间:2016-06-11 20:19:30

标签: javascript node.js api express

我正在使用API​​。我试图将姓氏打印到html文档上。

所以我能够控制日志响应给我的列表对象,并通过它循环查找姓氏。但这就是我被困的地方,我如何打印到文档?我是在app.get中编写一个函数,还是可以从HTML文档中访问数据?

有点失落,任何帮助都会很棒。

感谢。

var express = require('express');
var app = express();

var nationbuilder = require('nationbuilder');
var OAuth2 = nationbuilder.auth.OAuth2;
var async = require('async');

var oauth2Client = new OAuth2(); 
var sites = nationbuilder.sites('v1');
var people = nationbuilder.people('v1');

//look for resources.
app.use(express.static(__dirname + '/public')) ;

//nationbuilder config.
oauth2Client.setCredentials({
    access_token: 'XXXXXXX'
});
nationbuilder.options({
    params: {
        slug: 'XXXXXXXX',
    },
    auth: oauth2Client
}); 

people.list(function(err , response){
    for( var i = 0; i < response.results.length; i++){
        var last_name = response.results[i].last_name;
        console.log(last_name)
    }
});

app.get('/', function(request, response){
    response.sendfile('index.html');
});
app.listen(3000)

1 个答案:

答案 0 :(得分:2)

这里有几个选项。您现在正在做的只是发送静态HTML文件,该文件不允许修改网页。

选项一,可能是你最好的选择,就是使用HTML渲染引擎,比如PugOthers are available

基本用法(从上面链接复制):

index.pug

html
  head
    title= title
  body
    h1= message

index.js

app.get('/', function (req, res) {
    res.render('index', { title: 'Hey', message: 'Hello there!'});
});

生成以下HTML:

<html>
    <head>
        <title>Hey</title>
    </head>
    <body>
        Hello there!
    </body>
</html>

另一个需要更多工作的选项是使用RESTful API。您编写了一组改变状态的端点。然后在您的界面中,您可以让Javascript调用这些端点并根据结果更改DOM。

就个人而言,我建议使用模板引擎,因为它完全符合您的需求,工作量少,而且接近您现在尝试做的事情。

*免责声明:我最近需要使用HTML模板引擎,然后我和帕格一起去了。纯粹是因为我知道它的存在。我不熟悉任何替代方案,这就是为什么我没有提到任何其他选择。