向快速路由器返回异步功能



这听起来可能很愚蠢。但我被困在这里的是

1:返回转换后的 JSON 文件
2:将返回的对象放入路由中

路线.js

const express = require('express');
const router = express.Router();
const routings = require('./src/services/routings');
router.get('/routings', async(req, res) => {
const routesRes = await routings.getRoutings();
res.end(JSON.stringify(routesRes, null, " ")).catch(function (err) {
console.log(err);
});
});
module.exports = router;

路由.js

const parseXml = require('xml2js')
let data = `<?xml version="1.0" encoding="UTF-8"?>...'
getRoutings = async() => {
await parseXml.parseStringPromise(data).then(function (result) {
console.log('Done');
return result;
})
.catch(function (err) {
console.log(err);
});
}
module.exports = {getRoutings}

您的getRoutings()函数没有返回值。 因此,当您执行此操作时:

const routesRes = await routings.getRoutings();

routesRes将永远undefined.

我会建议这个:

getRoutings = () => {
return parseXml.parseStringPromise(data).then(function (result) {
console.log('Done');
return result;
}).catch(function (err) {
console.log(err);
throw err;          // make sure error is propagated
});
}

最新更新