Node.js/Express не выводит console.log, highcharts.js дает неопределенную ошибку

Я из PHP, но впервые пробую сайт Node/Express. Я успешно использовал экспресс-генератор для запуска базового скелета на локальном хосте. Я также установил highcharts через npm и следовал инструкциям, данным 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) console.log () не выводится на терминал или консоль браузера при запуске DEBUG=project:* npm start. Это вывод на что-то еще, что я не проверял, или мне нужно сделать что-то еще, чтобы увидеть это?

2) require ('highcharts / modules / export')(Highcharts); выдает ошибку TypeError: Невозможно прочитать свойство 'document' из неопределенного в /Applications/MAMP/htdocs//node_modules/highcharts/modules/exporting.js:9:115
Где я все испортил?

2 ответа

Решение

Причина, по которой пример Highcharts, на который вы ссылались, использует require() в том, что многие люди запускают свой браузерный код через Browserify, чтобы продолжать использовать свои любимые идиомы Node и поддерживать некоторый уровень изоморфного дизайна.

Несмотря на это, Highcharts по-прежнему предназначен для браузера и не может использоваться в Node. Предполагается, что ваше приложение Express предоставляет HTML-страницу, которая каким-то образом загружает Highcharts. Вы не ограничены использованием Browserify, но это популярный вариант для этого варианта использования.

Кроме того, что касается вашей неуверенности в том, где искать журналы: всегда терминал. Ваши Node-программы никогда не войдут в консоль браузера, если вы не сделаете все возможное, чтобы заставить их сделать это, используя такие причудливые вещи, как Node Inspector.

Посмотрите на ошибку:

требуют ('Highcharts/ модули / экспорт')(Highcharts); выбрасывает TypeError: Невозможно прочитать свойство 'document' из неопределенного

Его ищет document API-интерфейс браузера, HighCharts только на стороне клиента.

Другие вопросы по тегам