我尝试在我的本地nodejs安装中安装此软件包:https://github.com/FLYBYME/node-transmission但是从上面的github存储库运行example.js
时出现以下错误。
Error: connect ECONNREFUSED 127.0.0.1:9091
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 9091
经过一番研究后,我尝试使用此代码在端口9091上运行服务器(在单独的server.js
文件中)
const http = require('http')
const port = 9091
const requestHandler = (request, response) => {
console.log(request.url)
response.end('Hello Node.js Server!')
}
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`server is listening on ${port}`)
})
在端口9091上运行服务器后,我开始使用example.js
收到此错误:
SyntaxError: Unexpected token H in JSON at position 0
at JSON.parse (<anonymous>)
at IncomingMessage.onEnd (F:NodeJS\node-transmission-master\lib\transmission.js:453:33)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
导致这种情况的原因是什么?我不知道我做错了哪一步。这就是我描述我遵循的整个过程的原因。
我对nodejs很新。任何帮助都将深表感谢。
答案 0 :(得分:1)
该库期待JSON格式化的响应,并且您正在发送简单的文本响应。如果你查看他们的源代码,你可以看到他们的callServer
函数需要一个字符串化的JSON,但我在他们的文档中看不到。
您可以像这样更改代码:
const http = require('http')
const port = 9091
const requestHandler = (request, response) => {
console.log(request.url)
// Format your response as a stringified JSON
response.end(JSON.stringify({message: 'Hello Node.js Server!'}));
}
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`server is listening on ${port}`)
})
答案 1 :(得分:1)
要从node-transmission包运行示例,首先需要安装并启动transmission-daemon。 以下步骤适用于Ubuntu:
su -
更改为root用户(请务必小心以root身份执行/安装)apt-get install transmission-daemon
编辑守护程序配置以禁用身份验证或设置用户名/密码(没有默认密码)。您可以通过编辑配置文件中的相对标志来禁用身份验证:
pico /etc/transmission-daemon/settings.json
rpc-authentication-required:false
Ctrl-X
然后按Y
,然后按Enter
保存更改启动守护程序:start transmission-daemon
您现在应该能够成功执行example.js
并下载其torrent链接。