无法在EJS中呈现数据

时间:2018-01-07 19:12:35

标签: node.js database render ejs psql

初学者程序员。

我正在使用node和express创建一个应用程序,当我收到我的h1文本和链接以显示在页面上时,我似乎无法从我使用pqsl设置的数据库中呈现数据。我无法找到与我正在做的相对应的答案,任何帮助都会非常感激!

这是控制器页面:

const Goal = require('../models/goal');

const goalsController = {};

goalsController.index = (req, res) => {
  Goal.findAll()
  .then(goals => {
    res.render('goals/index', {goals: goals});
  })
  .catch(err => {
    res.status(400).json(err);
  });
};

module.exports = goalsController;

这是我的目标/ index.ejs页面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <h1>Here's a look at all of your goals!!</h1>
  <a href="/goals/new">New Goal?</a>
  <div class="goal-container">
    <% goals.forEach(goal => { %>
      <h2>
      <a href="/goals/<%= goal.id %>"><%= goal.goal %></a>
      </h2>
    <% }) %>
  </div>
</body>
</html>

我的路线页面:

const express = require('express');
const goalsController = require('../controllers/goals-controllers');
const goalsRouter = express.Router();

goalsRouter.get('/', goalsController.index);

module.exports = goalsRouter;

和模型页面:

const db = require('../db/config');

const Goal = {};

Goal.findAll = () => {
  return db.query('SELECT * FROM goals ORDER BY id ASC');
};

module.exports = Goal;

更新:我已经发现由于某种原因,我的数据库是在psql中连接的,而不是我的种子文件。还没弄明白这个问题,但毕竟这不是一个EJS问题!

0 个答案:

没有答案