go-node icon indicating copy to clipboard operation
go-node copied to clipboard

go-node error in windows

Open sumwai opened this issue 1 year ago • 2 comments

Hi, I used go-node on Linux the other day and it worked fine. But when I put the project to run on Windows today, it gave an error.

Error

node:events:491
       throw er; // Unhandled 'error' event
       ^

Error: connect ENOENT C
     at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1471:16)
Emitted 'error' event on Socket instance at:
     at emitErrorNT (node:internal/streams/destroy:151:8)
     at emitErrorCloseNT (node:internal/streams/destroy:116:3)
     at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
   errno: -4058,
   code: 'ENOENT',
   syscall: 'connect',
   address: 'C'
}

I tried to check your code, the specific reason for the error is in this part

var uidb [16]byte
rand. Read(uidb[:])
token := hex.EncodeToString(uidb[:])
rand. Read(uidb[:])
socket := os.TempDir() + "/" + hex.EncodeToString(uidb[:]) + ".sock"
log.Println(token, socket)

In Windows, the string returned by os.TempDir() is C:\Users\[username]\AppData\Local\Temp, but your program using a string separated by : in Node, causing when JavaScript run socket.connect( line.split(":")[1], parameter #1(line.split(":")[1]) is "C".

Suggestion: You can modify socket.connect(line.split(":")[1] in JavaScript to socket.connect(line.split(":").slice(1).join(":")

sumwai avatar Jan 05 '23 07:01 sumwai

Sorry, I tried to modify the JavaScript, but it doesn't work properly, and I still get an error

node:events:491
      throw er; // Unhandled 'error' event
      ^

Error: connect EACCES C:\Users\sumwai\AppData\Local\Temp/3b980a8d1e5fd6ed7fa649f6e277161c.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1471:16)
Emitted 'error' event on Socket instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -4092,
  code: 'EACCES',
  syscall: 'connect',
  address: 'C:\\Users\\sumwai\\AppData\\Local\\Temp/3b980a8d1e5fd6ed7fa649f6e277161c.sock'
}

Node.js v19.3.0
exit status 1

sumwai avatar Jan 05 '23 07:01 sumwai

I change the "unix" socket to "tcp" socket, and make a random port to listen, and send it to node by pipeline, it can work.

sumwai avatar Jan 05 '23 08:01 sumwai