我是NodeJS和ExpressJS的新手。我正在尝试执行一个简单的数据库查询。
db.execute('SELECT * FROM restaurant').then().catch()
我遇到此错误:
db.execute('SELECT * FROM restaurant')。then()。catch() ^
TypeError:无法读取未定义的属性'then'
我正在使用在phpMyAdmin上运行的MySQL数据库。这是我的数据库快照。
我已经检查了数据库,它已连接。下面是我在App.js中的代码!
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const admin = require('./routes/admin');
const shop = require('./routes/shop');
const db = require('./config/db');
const app = express();
app.use(bodyParser.urlencoded({extended:false}))
app.use('/admin',admin);
app.use('/shop',shop)
db.execute('SELECT * FROM restaurant').then().catch()
app.get('/', (req,res) =>{
res.status(200).send('<h3>Front page</h3>')
});
app.get('*', (req,res) =>{
res.status(404).send('<h1>File not found</h1>')
});
const port = process.env.PORT || 5000;
app.listen(port);
console.log('App is listening on port ' + port);
我希望餐厅名称在浏览器中显示。
下面是config / db文件:
var mysql = require('mysql2');
var db = mysql.createPool({
host : 'localhost',
user: 'root',
database:'pos',
password:''
});
module.exports=db
答案 0 :(得分:3)
您需要这样在配置文件中导出池的承诺版本:
var mysql = require('mysql2');
var db = mysql.createPool({
host : 'localhost',
user: 'root',
database:'pos',
password:''
});
module.exports=db.promise()
有关更多信息,请检查mysql2 docs。