使用 Mixpanel - Express 中的节点库

Using Mixpanel - Node Library in Express

我目前正在尝试整合 Mixpanel Node library into a test application that I am building. This is a Node.js application using the express framework

根据 express 文档,I have a JS file to manage the project, a folder called "public" that contains all of my static files,以及另一个包含 express 附带的节点模块的文件夹。

我在 "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 文件中,我尝试通过将它们放入脚本标签来使用混合面板函数:

<script>
mixpanel.track("event")
</script>

但是当我 运行 node app.js 并在我的浏览器中查看页面时它说:

Uncaught ReferenceError: mixpanel is not defined

我对 node.js 的理解很差,但我想我需要使用 app.use()app.get() 或类似的东西来加载 Mixpanel 库进入应用程序。我究竟做错了什么?我还意识到我对 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')
});