我是Node and Express的新手。我使用DOG API来获取包含所有品种的狗的对象,然后使用ejs渲染它们。下面是我的代码:
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);
});
我有包含index.ejs
文件的views文件夹以下是我的index.ejs
文件:
<!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对象的属性时,它说:无法读取未定义的属性'属性名称']为什么会这样?还是我在某个地方出错?预先感谢您提供的任何帮助。
我是Node and Express的新手。我使用DOG API来获取包含所有品种的狗的对象,然后使用ejs渲染它们。下面是我的代码:const express = require('express'); const path = ...
[当您执行诸如发送请求之类的异步操作时,它们需要花费一些时间来解决(即使服务器非常迅速地给出响应,但回调函数不会立即执行)。在您的获取路线中,您正在发送请求并尝试立即呈现ejs文件。您应该等待响应。