gpt4 book ai didi

javascript - NodeJS - 创建一个使用 Sequelize 函数的 Promise 函数

转载 作者:行者123 更新时间:2023-12-03 22:18:53 25 4
gpt4 key购买 nike

我是 Promise 的新手,我很难创建一个包含已经使用 Promise 的 Sequelize 函数的 Promise。

我想要这样的东西:

var geojson = require(path.join(__dirname, 'lib', 'geojson');

router.get('/[0-9]{3}/points.geojson', function(req, res, next){
var codecs = req.url.split('/')[1];
geojson.pointsToGeoJSON(codecs).then(function(geoJSON){
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify(geoJSON));
});
});

./lib/geojson.js:
var path = require('path');
var Promise = require('promise');
var Geojson = require('geojson');
var Point = require(path.join(__dirname, '..', '..', 'models', 'point'));

module.exports = {
pointsToGeoJSON: function(codecs) {

//this is a Sequelize function
Point.findAll({where: {codecs : codecs}, raw: true})
.then(function(points){
var data = [];
for(var i=0; i < points.length; i++){
points[i].coordinates = JSON.parse(points[i].coordinates);
data.push(points[i]);
}

//this is another asyn function
Geojson.parse(data, {'crs': {'type': 'name', 'properties': {'name': 'EPSG:3857'}}, 'Point': 'coordinates'}, function(geoJSON){

//this is what I want the function to return
return geoJSON;
});
});
}
}

如何让上面的 pointsToGeoJSON函数使用Promise,才能使用 .then()

最佳答案

你已经有了 Promise,所以就这样做:
var path = require('path');
var Promise = require('promise');
var Geojson = require('geojson');
var Point = require(path.join(__dirname, '..', '..', 'models', 'point'));

module.exports = {
pointsToGeoJSON: function(codecs) {

//this is a Sequelize function
return Point.findAll({where: {codecs : codecs}, raw: true}).then(function(points){
var data = [];
for(var i=0; i < points.length; i++){
points[i].coordinates = JSON.parse(points[i].coordinates);
data.push(points[i]);
}

//this is another asyn function
return new Promise(function(resolve, reject){
Geojson.parse(
data,
{'crs': {'type': 'name', 'properties': {'name': 'EPSG:3857'}}, 'Point': 'coordinates'},
function(geoJSON){
resolve(geoJSON);

});
});
});
}
};

请参阅@bergi 提供的链接,了解如何将 Promise 与回调和一些替代方案一起使用。

关于javascript - NodeJS - 创建一个使用 Sequelize 函数的 Promise 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35018694/

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