0

我正在尝试使用ProcessNodejsLaravel控制器执行文件:Symfony

$process = new Process('node node/test.js');
$process->run();

if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}

echo $process->getOutput();

node/test.js位于 中,如下Laravel public directory所示:

const scrapedin = require('scrapedin')
  const fs = require('fs')

  const cookies = fs.readFileSync('cookies.json')
  const options = {
    cookies: JSON.parse(cookies)
  }

  scrapedin(options)
.then((profileScraper) => profileScraper('https://www.linkedin.com/in/profile/'))
.then((profile) => console.log(profile))

Laravel我运行此程序时,出现以下错误:

内部/模块/cjs/loader.js:638 抛出错误;^ 错误:在 >> Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) 找不到模块“scrapedin”

如果我从终端运行以下命令,脚本将正常工作:

node test.js

如果我从终端运行以下命令,则会收到与上述相同的错误:

node /var/www/webste/public/node/test.js  

我猜,Laravel controller我需要执行test.js保存在服务器根目录中的文件,而不是test.js位于. 我很难弄清楚如何做到这一点。public/nodeLaravel app

4

0 回答 0