Javascript 使用async/await时NodeJ中没有响应
我正在尝试使用nodejs中的async/await将xml数据转换为json数据。。 我在sqlmapper代码中获取数据,但当我尝试将其链接到控制器代码时,没有得到响应 sqlmapper代码:Javascript 使用async/await时NodeJ中没有响应,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,我正在尝试使用nodejs中的async/await将xml数据转换为json数据。。 我在sqlmapper代码中获取数据,但当我尝试将其链接到控制器代码时,没有得到响应 sqlmapper代码: const GetList = async function (Data) { try { let result = await db.pool.request() .input('id', db.sql.In
const GetList = async function (Data) {
try {
let result = await db.pool.request()
.input('id', db.sql.Int, Data.id)
.input('user', db.sql.Int, Data.user)
.execute('usp_GetList')
if (result.recordset) {
var resp = result.recordset[0];
let value = Object.values(resp)[0];
xml2js.parseString(value, { mergeAttrs: true }, (err, jsonresult) => {
var myJSON = JSON.stringify(jsonresult);
let value1 = myJSON.replace("\"", "");
console.log('myJSON', value1);
return utill.responseSuccessJSON(200, "success", myJSON);
});
}
} catch (error) {
if (error) {
return utill.responseErrorJSON(401, "error", error)
}
}
}
const GetList = async(request, response) => {
let Data = request.body;
let result =await sqlmapper.GetGroupUserList(Data);
return response.json(result);
}
上面的代码是我放在sqlmapper.js中的代码
控制器代码:
const GetList = async function (Data) {
try {
let result = await db.pool.request()
.input('id', db.sql.Int, Data.id)
.input('user', db.sql.Int, Data.user)
.execute('usp_GetList')
if (result.recordset) {
var resp = result.recordset[0];
let value = Object.values(resp)[0];
xml2js.parseString(value, { mergeAttrs: true }, (err, jsonresult) => {
var myJSON = JSON.stringify(jsonresult);
let value1 = myJSON.replace("\"", "");
console.log('myJSON', value1);
return utill.responseSuccessJSON(200, "success", myJSON);
});
}
} catch (error) {
if (error) {
return utill.responseErrorJSON(401, "error", error)
}
}
}
const GetList = async(request, response) => {
let Data = request.body;
let result =await sqlmapper.GetGroupUserList(Data);
return response.json(result);
}
上面的代码是我在我的控制器中使用的代码,我得到的结果是未定义的
please help me to get json data which is converted from xml in response
调用
xml2js
解析器时,问题出在函数GetList
中。您将回调传递给parse函数,并从回调返回一个值。从回调返回的值与从外部函数调用返回的值不同。解决方案是将函数调用包装成承诺并返回承诺
return new Promise( (resolve, reject) => {
xml2js.parseString(value, { mergeAttrs: true }, (err, jsonresult) => {
if (err) {
return reject(err);
}
var myJSON = JSON.stringify(jsonresult);
let value1 = myJSON.replace("\"", "");
console.log('myJSON', value1);
resolve(utill.responseSuccessJSON(200, "success", myJSON));
});
}
}