В настоящее время я пытаюсь интегрировать Библиотека узлов Mixpanel в тестовое приложение, которое я создаю. Это приложение Node.js, использующее экспресс-каркас.
Согласно экспресс-документации, У меня есть JS-файл для управления проектом, папка с названием "общедоступная", содержащая все мои статические файлы и еще одна папка с модулями узлов, которые поставляются с express.
У меня есть две статические HTML-страницы в «общедоступном» виде, в которые я пытаюсь добавить отслеживание Mixpanel. Я запускаю проект локально, запустив node app.js.
app.js включает:
const express = require('express');
const app = express();
const port = 3000;
const path = require('path');
//Mixpanel Additions
var Mixpanel = require('mixpanel');
var mixpanel = Mixpanel.init('<I am putting my project token here>', {
protocol: 'https'
});
//App Configuration and Init
app.use(express.static('public'));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname + '/public/page.html'));
});
app.listen(port, () => console.info(`Example app listening on port ${port}!`))
В своих HTML-файлах я пытаюсь использовать функции mixpanel, помещая их в теги скрипта:
<script>
mixpanel.track("event")
</script>
Но когда я запускаю node app.js и просматриваю страницу в своем браузере, он говорит:
Uncaught ReferenceError: mixpanel is not defined
У меня довольно плохое понимание node.js, но я предполагаю, что мне нужно использовать app.use(), app.get() или что-то в этом роде, чтобы загрузить Mixpanel lib в приложение. Что я делаю неправильно? Я также понимаю, что мое понимание Express и Node довольно элементарно, поэтому любые дополнительные знания приветствуются, особенно если я далеко.





Если вы хотите вызвать в браузере функции отслеживания mixpanel, вам следует загрузить библиотеку mixpanel в тег скрипта на стороне браузера, как показано здесь:
https://developer.mixpanel.com/docs/javascript
Цель пакета node.js - отправлять события со стороны сервера, например, если вы хотите регистрировать, когда отображается page.html, вы могли бы сделать
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname + '/public/page.html'));
mixpanel.track('event')
});