【发布时间】:2021-05-16 22:44:53
【问题描述】:
我正在尝试从 mysql 数据库中传递一些坐标以在地图上进行标记,但无法获取它们。我在 stackoverflow 上查看了许多类似的问题,但未能找到答案。如果有人能指出我哪里出错了,将不胜感激。
getListings.js
var mysql = require('mysql');
config = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'xx',
port: 'xxxx',
};
var connection = mysql.createConnection(config);
connection.connect(function (err) {
if (err) {
console.log('error connecting:' + err.stack);
}
console.log('connected successfully to DB.');
connection.query('SELECT listing_coords FROM listings', (err, rows) => {
if (err) throw err;
console.log('Data received from Db:\n');
var results = JSON.parse(JSON.stringify(rows));
module.exports = { results };
console.log(results);
});
});
然后在我的 script.js 文件中
var { results } = require('./getListings');
console.log(results);
我在浏览器控制台中收到一条错误消息,提示“未定义要求”
我需要弄清楚如何从 mysql 中提取坐标以便绘制它们,一定有办法吗?我必须构建一个 api 并使用 ajax 吗?提前感谢您的帮助。
更新了我的 getListings.js 文件 - 它现在显示在浏览器中我需要的数据字符串中作为原始数据包
var mysql = require('mysql');
const express = require('express');
var app = express();
const bodyparser = require('body-parser');
app.use(bodyparser.json());
config = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'xx',
port: 'xxxx',
};
var connection = mysql.createConnection(config); //added the line
connection.connect(function (err) {
if (err) {
console.log('error connecting:' + err.stack);
}
console.log('connected successfully to DB.');
app.listen(5000, () => console.log('express server is running at 5000'));
app.get('/listings', (req, res) => {
connection.query(
'SELECT listing_coords FROM listings',
(err, rows, fields) => {
if (!err) res.send(rows);
else console.log(err);
}
);
});
我未能成功让输出在 script.js 中运行。我会在它工作时发布工作代码。
【问题讨论】:
标签: javascript mysql node.js json