我正在构建一个sankey图表,它将从MongoDB数组中获取数据,但是当我打开它时会返回错误。
ERROR Error: Invalid row #0
at Object.gvjs_ll [as arrayToDataTable]
at GoogleChartComponent.createDataTable
at SafeSubscriber._next
at SafeSubscriber.__tryOrUnsub
at SafeSubscriber.next
at Subscriber._next
at Subscriber.next
at SwitchMapSubscriber.notifyNext
at InnerSubscriber._next
at InnerSubscriber.next
这是我第一次使用Google图表,所以我不确定为什么会出现此错误。我尝试环顾四周,但没有找到任何解决方法,因此我来这里询问。
我使用Here中的图表代码>
firstchart.component.ts
import { Component, OnInit } from '@angular/core'; import {BackendService} from './../backend.service'; @Component({ selector: 'firstchart', templateUrl: './firstchart.component.html', styleUrls: ['./firstchart.component.css'] }) export class FirstchartComponent implements OnInit { public data: object[]; title = ''; type = 'Sankey'; columnNames = ['From', 'To', 'Weight']; options = { }; width = 1820; height = 740; constructor(private myservice: BackendService) { } ngOnInit() { this.myservice.GetList().subscribe( (res: any) => { this.data = res["0"]["list"]; }, error => { } ); } }
server.js
const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const app = express(); const SLDBModel = require('./sldb_schema'); require('./db'); app.use(bodyParser.urlencoded({ extended: true })); app.use(express.urlencoded({ extended: true })) app.use(function (req, res, next) { res.setHeader('Access-Control-Allow-Origin','*'); res.setHeader('Access-Control-Allow-Methods','GET, POST, PUT, DELETE'); res.setHeader('Access-Control-Allow-Headers','content-type, x-access-token'); res.setHeader('Access-Control-Allow-Credentials', true); next(); }); app.get('/api/getList', function (req, res) { SLDBModel.find({},function(err, data) { if(err) { res.send(err); } else { res.send(data.map(v => v.toJSON())); } }); }); module.exports = app; app.listen(3000, ()=> { console.log("SERVER IS ONLINE! ON PORT 3000"); })
MongoDB中的数据
{ "_id" : ObjectId("5ec4672e44f01dcae82c3dde"), "num_rows" : 3, "list" : [ { "From" : "All Population", "To" : "SBOBETH", "Weight" : 1, "S_NAME" : "SBOBETH", "S_ADD" : "sbobeth.com", "S_STATUS" : "UP", "S_DPV" : 565 }, { "From" : "All Population", "To" : "GTRCASINO", "Weight" : 1, "S_NAME" : "GTRCASINO", "S_ADD" : "gtrcasino.com", "S_STATUS" : "DOWN", "S_DPV" : 1680 }, { "From" : "All Population", "To" : "GTRBETCLUB", "Weight" : 1, "S_NAME" : "GTRBETCLUB", "S_ADD" : "gtrbetclub.com", "S_STATUS" : "UP", "S_DPV" : 4950 }, { "From" : "All Population", "To" : "77UP", "Weight" : 1, "S_NAME" : "77UP", "S_ADD" : "77up.bet", "S_STATUS" : "UP", "S_DPV" : 273 } ] }
HTML
<br>
<div style="text-align: center;">
<google-chart #chart
[title]="title"
[type]="type"
[data]="data"
[columnNames]="columnNames"
[options]="options"
[width]="width"
[height]="height">
</google-chart>
</div>
<br>
我正在构建一个sankey图表,它将从MongoDB数组中获取数据,但是当我打开它时会返回错误。错误错误:在Object.gvjs_ll处无效的第0行[在GoogleChartComponent处为as as arrayToDataTable ....
[list
属性似乎在对象的父级中。不在您尝试访问this.data = res["0"]["list"];
的数组内部。尝试将其替换为this.data = res["list"];
。
对于数据,您正在传递对象数组...