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 только на стороне клиента.