我尝试获取请求并从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%>
屏幕截图是我要在页面上显示的JSON。
答案 0 :(得分:2)
news
包含三个道具,next_page
,data
和prev_page
。如果您想访问data
的内容,则需要循环播放array
:
<% if (news.data) { %>
<% news.data.forEach(function(obj){ %>
<span><%= obj.id %></span>
<% }); %>
<% } %>
有时跟踪ejs
语法可能有点棘手。如果标准错误消息难以阅读,可以查看很多npm
个模块。