Я этот код сервера, используя PostGreSQL паба доступных hereвозвращение класса от сервера к клиенту в DART языками
class Vendor {
String name;
String email;
}
void gVendors(HttpRequest req){
HttpResponse res = req.response;
addCorsHeaders(res);
print('${req.method}: ${req.uri.path}');
req.listen((List<int> buffer) {
connect(db).then((conn) {
conn.query('select * from VNDRS')
.map((row) => new Vendor()
..name = row.vname
..email = row.email)
.toList()
.then((List<Vendor> vendors) {
for (var c in vendors) {
print(c is Vendor); // this is correct
print(c.name); // this is correct
print(c.email); // this is correct
}
})
.then((_){
res.write(Vendor); // ??
res.close();
});
});
}, onError: printError);
}
, когда я проверил в клиенте, и распечатан
print(request.responseText);
выход был слово «Поставщик»
Могу ли я отправить класс от поставщика на клиент, или есть другой способ отправить вывод моего sql здесь клиенту.
благодаря
Я получил эту ошибку в стороне сервера «Uncaught Error: HttpException: HTTP-заголовки не изменяются », и если я удалил« res.headers.contentType = новый ContentType («приложение», «JSON»); затем я получаю следующий вывод, напечатанный в консоли браузера, без оператора печати, чтобы вызвать его из клиентского кода .. [{"name": "Vendor 1", "email": "[email protected]"}, {"name": "Vendor 2", "email": "[email protected]"}] [{VNDRNUM: null, VNAME: null, EMAIL: null}, {VNDRNUM: null, VNAME: null, EMAIL: null}] –
В .map ((row) => new Vendor(). Он дает ошибку класса, не имеет конструктора по умолчанию. –
Извините, я обновил код, чтобы добавить заголовок 'content-type' с методом 'response.headers.set()' Кроме того, я добавил конструктор по умолчанию для Vendor, поэтому вы можете использовать его для анализа результата базы данных. Надеюсь, что это поможет. – luizmineo