Node.js 使用pm2运行bot会中断到本地文件的路径

Node.js 使用pm2运行bot会中断到本地文件的路径,node.js,Node.js,我有一个电报机器人(使用telegraf),它可以监听聊天和回复本地文件。当使用“node index.js”运行时,这种方法有效,但不会发送pm2文件 const Telegraf = require('telegraf'); const extra = require('telegraf/extra'); const markup = extra.markdown(); const token = TOKEN; const bot = new Telegraf(token); bo

我有一个电报机器人(使用telegraf),它可以监听聊天和回复本地文件。当使用“node index.js”运行时,这种方法有效,但不会发送pm2文件

const Telegraf = require('telegraf');

const extra = require('telegraf/extra');
const markup = extra.markdown();

const token = TOKEN;
const bot = new Telegraf(token);



bot.hears(['/cal'], (ctx) => {
    ctx.replyWithPhoto({ source: './cal.jpg' });
});


bot.hears(['/42'], (ctx) => {
    ctx.replyWithPhoto({ source: './42.jpg' });
});

除了我用来执行它的内容之外,没有其他更改。我要发送的文件与index.js文件位于同一文件夹中。

请尝试解析完整路径名:

const Telegraf = require('telegraf');
const path = require('path');
const extra = require('telegraf/extra');
const markup = extra.markdown();

const token = TOKEN;
const bot = new Telegraf(token);



bot.hears(['/cal'], (ctx) => {
    ctx.replyWithPhoto({ source: path.resolve('./cal.jpg') });
});


bot.hears(['/42'], (ctx) => {
    ctx.replyWithPhoto({ source: path.resolve('./42.jpg') });
});

这是一个很好的尝试,我真的认为这会解决它,但它没有。它确实向我显示了错误!使用pm2执行它将路径更改为/home/user。我不知道,但现在我能修好了。有没有一种方法可以使路径成为实际的项目路径,而不必对完整路径进行硬编码?