Использование Mixpanel - Node Library в Express - PullRequest
0 голосов
/ 30 ноября 2018

В настоящее время я пытаюсь интегрировать библиотеку Mixpanel Node в тестовое приложение, которое я создаю.Это приложение Node.js, использующее express framework .

Согласно экспресс-документации, У меня есть файл JS для управления проектом , папка с именем public, в которой содержатся все мои статические файлы , и другаяпапка с узлами модулей, которые поставляются с экспресс.

У меня есть две статические HTML-страницы в «общедоступных», в которые я пытаюсь внедрить отслеживание микшпанелей.Я запускаю проект локально, запустив 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.log(`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 в приложение.Что я делаю неправильно?Я также понимаю, что мое понимание Express и Node довольно элементарно, поэтому любые дополнительные знания приветствуются, особенно если я далеко.

1 Ответ

0 голосов
/ 30 ноября 2018

Если вы хотите вызвать функции отслеживания 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')
});
...