一.Node相关问题
1.多级路由的使用
var router = express.Router();//创建router对象
并导出 module.exports = router;
最后在app.js中引入
const oaDataRouter = require('./routes/oaData')
再对其设置根路径app.use('/oadata', oaDataRouter);
这样就可以访问 根路径下不同的分路径/oadata/oalinedata来实现不同的功能
2.使用mysql库
(1)引入const mysql = require('mysql');
(2)创建一个方法集let db = {};(这个方法集里面只放关于数据库操作的方法 这样外部只需要引入该方法集里面对应的方法即可)
(3)const pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'root',
password: '123456',
database: 'portdata'
});
创建 数据池
(4)封装查找函数 放入方法集db中
db.query = function (sql, callback) {
if (!sql) {
callback();
return;
}
pool.query(sql, function (err, rows, fields) {
if (err) {
callback(err, null);
return;
};
callback(null, rows, fields);
});
}
其中查找方法是pool.query(sql,function(){})
callback是我们需要传入的拿到数据后需要做的回调方法 可以把这里设置成一个Promise对象
WebGis问题
"umi-request"库的使用
import request from "umi-request";
export function getdata(url){
return request.get(url)
}
返回的是一个promise对象 只需要调用.then.catch 实现相关功能就好
实现绘制多条直线或者绘制多种类型几何 的思路
将对应的数据设置成geojson或者其他能被openlayers解析的数据类型 在进行引用显示就会方便得多
const vectorlayer = new VectorLayer({
source:new VectorSouce({
features: (new GeoJSON()).readFeatures(geojson)
})
})
读取geojson数据放入一个矢量图层就会绘制到地图上
清除只需要拿到这个layer然后清空 或者删除该图层就可以