0

我来自 PHP 背景,但第一次尝试 Node/Express 站点。我已经成功地使用 express-generator 让基本骨架在 localhost 上运行。我还通过 npm 安装了 highcharts,并按照highcharts 给出的说明通过 require() 将其添加到我的项目中。我现在在我的 index.js 中有这个:

var express = require('express');
var Highcharts = require('highcharts');
var router = express.Router();

// Load module after Highcharts is loaded
require('highcharts/modules/exporting')(Highcharts);

console.log(Highcharts);

// Create the chart
Highcharts.chart('container', { /*Highcharts options*/ });

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

我有两个问题:

1) 运行 DEBUG=project:* npm start 时,console.log() 没有输出到终端或浏览器控制台。它是输出到我没有检查过的其他东西还是我需要做更多的事情才能看到这个?

2) require('highcharts/modules/exporting')(Highcharts); 正在抛出 TypeError: Cannot read property 'document' of undefined at /Applications/MAMP/htdocs//node_modules/highcharts/modules/exporting.js:9:115我在
哪里搞砸了?

4

2 回答 2

1

您链接到的 Highcharts 示例使用的原因require()是许多人通过Browserify运行他们的浏览器代码,以便继续使用他们最喜欢的 Node 惯用语并保持某种程度的同构设计

尽管如此,Highcharts 仍然适用于浏览器,不能在 Node.js 中使用。您的 Express 应用程序应该提供一个 HTML 页面,该页面本身通过某种方式加载 Highcharts。您不限于使用 Browserify,但它是此用例的流行选择。

另外,至于您不确定在哪里查找日志:始终是终端。您的 Node 程序永远不会登录到浏览器控制台,除非您使用诸如Node Inspector之类的花哨的东西让它们这样做。

于 2016-05-07T02:55:41.677 回答
0

看看错误:

require('highcharts/modules/exporting')(Highcharts); 正在抛出 TypeError:无法读取未定义的属性“文档”

它寻找的document是浏览器 API,HighCharts 只是客户端。

于 2016-05-07T02:55:03.217 回答