表达。从URL

时间:2018-01-09 13:31:00

标签: node.js express

我尝试获取请求并从URL获取数据。 我使用Express框架。在我只使用Node JS之前,一切都还可以。但堆栈的人建议我使用快递。

因此,我尝试运行应用并将数据从网址呈现到我的ejs页面。 但我得到了Cannot GET /

拜托,你能帮助我解决我的错误吗?

我的app.js代码:

    var express = require('express');
    var router = express.Router();
    var http = require('http');
    var path = require('path');
    var config = require('config');
    var log = require('libs/log')(module);
    var request = require('request');

    var logger = require('morgan');
    var cookieParser = require('cookie-parser');
    var bodyParser = require('body-parser');
    var url = 'http://public.api.openprocurement.org/api/2.4/tenders?offset=2018-01-05T21:02:46.167030+02:00';
    var app = express();
    app.set('port', config.get('port'));

    app.engine('ejs', require('ejs-locals'));
    app.set('views', path.join(__dirname, 'templates'));
    app.set('view engine', 'ejs');

    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(cookieParser());
app.use('/', router);

    router.get('/', function(req, res, next) {
        request('http://public.api.openprocurement.org/api/2.4/tenders?offset=2018-01-05T21:02:46.167030+02:00', function (err, response, body) {
            if (err || response.statusCode !== 200) {
                return res.sendStatus(500);
            }
            res.render('index', { title : 'Main page', news : JSON.parse(body), some: '<b>Hello</b>' });
        });
    });

    // app.get('/', function (req, res, next) {
    //     res.render("index", {
    //         body: '<b>Hello</b>'
    //     });
    // });

    app.use(function (err, req, res, next) {
       if(app.get('env') == 'development') {
         var errorHandler = express.errorHandler();
         errorHandler(err, req, res, next);
       } else {
         res.send(500);
       }

    });


    http.createServer(app).listen(config.get('port'), function() {
        log.info('Express server listening on port ' + config.get('port'));
    });


    module.exports = app;

我的小ejs文件:

<%-news%>
<%-some%>

enter image description here

屏幕截图是我要在页面上显示的JSON。

1 个答案:

答案 0 :(得分:2)

news包含三个道具,next_pagedataprev_page。如果您想访问data的内容,则需要循环播放array

<% if (news.data) { %>
  <% news.data.forEach(function(obj){ %>
    <span><%= obj.id %></span>
  <% }); %>
<% } %>

有时跟踪ejs语法可能有点棘手。如果标准错误消息难以阅读,可以查看很多npm个模块。