The overall goal is to run Node.js on a JavaScript file and scrape the output using MS Access VBA. Here's the JavaScript file I'm using to test:
// C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js
var fs = require("fs");
var outputFile = "testLog.txt";
fs.writeFile(outputFile, new Date());
When I run this from the command prompt as follows, it generates a testLog.txt file with a timestamp in the Interview Prep folder.
C:\Users\micha\OneDrive\AppAcademy\Interview Prep>node tst.js
Now I want to trigger the same thing using VBA from within an Access app. I've tried it two ways. The first is quick and dirty, but my understanding is that I can flesh it out with StdOut for the scraping bit. It uses WScript.Shell:
Private Sub runShellTest_Click()
Dim objShell As Object, objExec As Object
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("C:\Program Files\nodejs\node.exe C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js")
End Sub
When I run it, a command prompt briefly flashes onscreen, but I don't get a new testLog.txt.
The other way I tried is even quicker and dirtier:
Private Sub runShellTest_Click()
MsgBox (Shell("C:\Program Files\nodejs\node.exe C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js", vbNormalFocus))
End Sub
Again, the command prompt flashes up briefly, and there's no new testLog.txt. However, the message box shows a task ID as expected, so I guess... something happened?
Any help is appreciated!
via ProdigalBulldog
No comments:
Post a Comment