gpt4 book ai didi

javascript - Express JS REST API 与 MySQL

转载 作者:行者123 更新时间:2023-11-29 16:50:40 25 4
gpt4 key购买 nike

我正在使用 Express.js 和 MySQL 进行练习。目前我有4个文件。错误是,

TypeError: areas.getAreas is not a function
at Object.<anonymous> (/--/--/--/src/routes/userRoutes.js:4:13)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/--/--/--/src/app.js:10:20)
at Module._compile (module.js:653:30)

但我确信我正在声明变量和函数,所以我不明白为什么会发生这种情况。

我尝试获取 userRoutes.js 文件中变量 areas 的值,但控制台只显示一个“{}”。我还尝试更改 areas.js 文件的函数的语法,将其编写为函数而不是像对象一样。

主文件是app.js,它包含:

const express = require('express');
const app = express();
const morgan = require('morgan');
const bodyParser = require('body-parser');
const mysql = require('mysql');

const connection = require('/--/--/--/db/connection.js');
const userRoutes = require('/--/--/--/routes/userRoutes.js');

app.set('port', process.env.PORT || 3000);

app.use(morgan('dev'));
app.use(bodyParser.json());

connection(mysql);
userRoutes(app);

app.listen(app.get('port'), ()=> {
console.log('server on port 3000');
});

接下来的文件是:

connection.js

'use strict';

module.exports = function connection(mysql){
mysql.createConnection({
host: 'http://x.x.x.x',
user: 'xxxxxxx',
password: 'xxxxxxx',
database: 'xxxxxxx'
})
};

areas.js

'use strict';

let areasModel = {};
areasModel.getAreas = (callback) => {
if(connection) {
connection.query(
"SELECT * FROM areas",
(err, rows) => {
if(err) {
throw err;
}
else {
callback(null, rows);
}
}
);
}
};

module.exports = areasModel;

userRoutes.js

'use strict';

const areas = require('../models/areas');

module.exports = function (app) {
app.get("/", (req,res)=>{
areas.getAreas((err, data) => {
res.json([]);
});
});
}

最佳答案

尝试在areas.js中导入connection.js,可能是因为从未进入该 if 语句,返回未定义

关于javascript - Express JS REST API 与 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52826805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com