node.js - React 从服务器拉取 SQL 数据
问题描述
我想出了如何向 SQL 服务器发出请求并在服务器端作为 JSON 发布。我想知道如何将这些数据提取到反应端。
服务器.js:
let pullTable = require('./actions/pullTable.js');
var express = require('express');
var app = express();
app.get('/', async (req, res, next) => {
try {
const result = await pullTable.pullTable();
return res.status(200).json(result);
} catch (error) {
next(error);
}
});
app.listen(5000, () => {console.log('Server is running..')});
SQL 请求 - pullTable.js:
var sql = require("mssql");
var express = require('express');
var app = express();
// config for your database
var config = {
user: 'user',
password: 'pass',
server: 'localhost',
database: 'Master'
};
const pullTable = async () => {
try {
const pool = await sql.connect(config);
const sqlQuery = 'SELECT * FROM Persons';
const result = await pool.request().query(sqlQuery);
return result.recordset;
} catch (err) {
throw err;
}
};
exports.pullTable = pullTable;
代码到这里都可以正常工作。我查看端口 5000,可以看到从我的服务器显示的 JSON 数据。只是不确定如何将它放入 React。这是我在反应方面的尝试(不包括 App.js 文件 - 不需要帮助):
获取数据.js:
import React, { Component } from 'react';
class getData extends Component {
constructor(){
super();
this.state={
data:[],
}
}
componentDidMount(){
fetch('http://localhost:5000')
.then((Response)=>Response.json())
.then((findresponse)=>
{
this.setState({
data:findresponse,
});
});
}
render() {
return (
<div>
{
this.state.data.map((dynamicData)=>
<div>
<span>{dynamicData.LastName} </span>
<span>{dynamicData.FirstName}</span>
</div>
)
}
</div>
);
}
}
export default getData;
只是想在那个 SQL 表中显示人的名字和姓氏。
解决方案
@Shawn Yap 为我指出了正确的方向。基本上必须在服务器脚本中包含 Access-Control-Allow-Origin 标头:
let pullTable = require('./actions/pullTable.js');
var express = require('express');
var app = express();
app.get('/', async (req, res, next) => {
try {
res.set('Access-Control-Allow-Origin', '*');
const result = await pullTable.pullTable();
return res.status(200).json(result);
} catch (error) {
next(error);
}
});
app.listen(5000, () => {console.log('Server is running..')});
不确定这是否是好的代码,但它正在工作。
推荐阅读
- javascript - Google Maps InfoWindows 是否修复了滚动位置更改错误?
- php - 使用xpath根据属性值返回特定项目值而无需循环
- google-cloud-platform - 不断收到此错误(没有足够的可用资源来满足请求。请尝试其他区域,或稍后再试)
- c# - 将 SerializeField 添加到变量时的奇怪行为
- python - 如何编写可以编写给定 n 个数字的表格的代码?
- python - 使用 PyTorch 从 MNIST 数据集中选择 0 和 1 时出现 AttributeError
- html - 防止长文本溢出
- java - URL.openconnection() 处的套接字绑定
- amazon-web-services - AWS Api Gateway 硬编码查询字符串参数
- c++ - C++ std::hex 是否反转字节顺序?(将十进制打印为十六进制)