首页 > 解决方案 > 数据库模块在 server.js 中不起作用

问题描述

我正在尝试在 server.js 测试中做几件事。我正在尝试 1) 将数据解析为 json,但 bodyParser 模块无法正常工作,并且 2) 将此 json 数据提供给我的 localhost:3000。这是我所拥有的:

//server.js
const express = require('express');
const bodyParser = require('body-parser');
const db = require('./queries');

const server = express();
const PORT = process.env.PORT || 3000;

server.use(
    bodyParser.urlencoded({
        extended: false
    })
);
server.use(bodyParser.json());

server.get('/', (req, res) => {
    db.getUsers;
});

server.listen(PORT, ()=>{
    console.log(`Server listening on port ${PORT}...`);
});

还有我的数据库查询测试

//database.js
const Pool = require('pg').Pool;
const pool = new Pool({
    user: 'lorenzodelosreyes',
    host: 'localhost',
    database: 'test_db',
    password: '',
    port: 5432
});

const getUsers = (req, res) => {
    pool.query(`SELECT * FROM test_table`, (error, results) =>{
        if (error) {
            throw error;
        }
        res.status(200).send(results.rows);
    });
}

module.exports = {getUsers};

当我输入本地主机时,它永远不会加载。虽然代码工作正常,因为我尝试将它们全部放在一个文件中,但我当然需要练习模块。我究竟做错了什么?

标签: javascriptsqlnode.jspostgresqlexpress

解决方案


试试这段代码,我将查询更改为数据库并更改调用函数的方式。

//server.js
const express = require('express');
const bodyParser = require('body-parser');
const db = require('./database'); // I change this line

const server = express();
const PORT = process.env.PORT || 3000;

server.use(
    bodyParser.urlencoded({
        extended: false
    })
);
server.use(bodyParser.json());

server.get('/', (req, res) => {
    db.getUsers(req, res); // I change this line
});

server.listen(PORT, ()=>{
    console.log(`Server listening on port ${PORT}...`);
});
//database,js
const Pool = require('pg').Pool;
const pool = new Pool({
    user: 'lorenzodelosreyes',
    host: 'localhost',
    database: 'test_db',
    password: '',
    port: 5432
});

const getUsers = (req, res) => {
    pool.query(`SELECT * FROM test_table`, (error, results) =>{
        if (error) {
            throw error;
        }
        res.status(200).send(results.rows);
    });
}


module.exports = {getUsers};

推荐阅读