javascript - 数据库模块在 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};
当我输入本地主机时,它永远不会加载。虽然代码工作正常,因为我尝试将它们全部放在一个文件中,但我当然需要练习模块。我究竟做错了什么?
解决方案
试试这段代码,我将查询更改为数据库并更改调用函数的方式。
//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};
推荐阅读
- reporting-services - 报表服务器数据驱动订阅呈现格式
- sql - 将所有时间转换为 0:00
- mysql - 作曲家安装的内存限制
- php - 更改 woocommerce 图片 URL 以匹配产品标题
- powershell - 我可以给点源命令起别名吗?
- linux - Bash - 用第二个数组中的字符串替换第一个数组中的文件字符串
- android - 在 Android 10 中获取蓝牙热点设备 IP
- entity-framework-core - Azure Pipelines 中的 SQL 迁移与事务
- reactjs - React js,输入类型onclick
- java - JavaFX Maven jfx:jar 错误:找不到工件 javafx-packager