Я новичок в Node и Express. Я использовал DOG API для получения объекта, содержащего все породы собак, и затем рендерил их, используя e js.
Ниже приведен мой код:
const express = require('express');
const path = require('path');
const port = 8000;
const app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.get('/', function (req, res) {
var request = require('request');
var obj;
request('https://dog.ceo/api/breeds/list/all', function (error, response, body) {
if (!error && response.statusCode == 200) {
obj = JSON.parse(body);
obj = obj.message;
console.log("hello ", obj);
}
});
res.render('index', { title: 'Hey', dogBreeds: obj });
});
app.listen(port, (err) => {
if(err){
console.log("ERROS: ",err);
}
console.log("Express server is runnig on port: ",port);
});
У меня есть папка views, которая содержит index.ejs
file
Ниже мой index.ejs
file:
<!DOCTYPE html>
<html lang="en">
<head>
<title>
<%= title %>
</title>
</head>
<body>
<h1>How r u?</h1>
<p>
<%= dogBreeds["waterdog"] %>
</p>
</body>
</html>
Когда я набрал: http://localhost:8000/
в браузере и запустил сервер. Вывод на консоль:
hello
, за которым следует полный извлеченный объект
Но в файле ejs
, когда я пытаюсь получить свойства объекта dogBreeds, он говорит:
Невозможно прочитать свойство ' имя-свойства ' из неопределенного
Почему это происходит? ИЛИ Я что-то не так делаю?
Заранее благодарим за любую помощь, которую вы можете оказать.