【问题标题】:Trying to GET json data, getting "not a function" error尝试获取 json 数据,得到“不是函数”错误
【发布时间】:2018-03-25 00:28:42
【问题描述】:

我正在创建一个程序员工作板应用程序,并试图在我的主页上显示 json 数据。在某个时候我会渲染它,但现在我只是想让它以 json 形式显示,以便我知道它可以工作。

我可以连接到服务器,但是当我加载页面时出现 TypeError(Job.showAllJobs 不是函数)。

我正在使用前一周制作的一个 crud 应用程序作为参考,但它与这个项目之间存在一些让我失望的差异。

这是我项目的文件结构:

工作板

  • 数据库

    • connection.js
    • schema.sql
  • 型号

    • Job.js
    • 用户.js
  • 观看次数

    • index.ejs
    • login.ejs
  • server.js

与我之前的 crud 应用不同,这个项目使用了一个之前给一些麻烦的 connection.js 文件。起初我以为我已经走出困境,但我认为这可能是我目前的问题的原因。

没有让 GET 工作可能看起来像一个小错误,但它真的让我很烦恼,因此我无法继续工作。

我用示例列表填充了我的表(作业)作为测试,但在不久的将来我计划将应用程序连接到 GitHub 作业 api。

server.js:

const express = require('express');
const app = express();
const PORT = 3000;
const bodyParser = require('body-parser');
const methodOverride = require('method-override');
const Job = require('./models/Job');
const User = require('./models/User');
const connection = require('./database/connection')

app.use(bodyParser.json())

app.use(methodOverride('_method'));

const urlencodedParser = bodyParser.urlencoded({ extended: false })

app.set("view engine", "ejs");

///// GET /////

// GET INDEX
app.get('/', (request, response) => {
  Job.showAllJobs().then(everyJob => {
    response.json('index');
    // response.render('index', { jobs: everyJob });
  });
});

Job.js

const Job = {};

const db = require('../database/connection');

///// JOBS /////


/// INDEX ///
Job.showAllJobs = () => {
  return db.any('SELECT * FROM jobs');
};

module.exports = Job;
module.exports = db;

connection.js

// require database setup to use pg-Promise
const pgp = require('pg-promise')({});

// connection url
const connectionURL = "postgres://localhost:5432/job_board";

// new database connection
const db = pgp(connectionURL);

// module.exports = db;

【问题讨论】:

    标签: javascript node.js postgresql express pg-promise


    【解决方案1】:

    这里有几个问题。

    • 确保将作业传递到 res.json 而不是字符串 'index'
    • 确保从connection.js 导出db
    • 您正在从Job.js 导出Jobdb。由于您要导出 db 秒,它会覆盖 Job 的导出。

    【讨论】:

    • 谢谢!我正在查看数据。
    • 顺便说一句,你隶属于 GA,对吧?我现在是 WDI 学生,我认出了你的个人资料照片。
    • 哈哈!我是。我以为我认出了这种表达模式:)
    猜你喜欢
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    相关资源
    最近更新 更多