Sto cercando di seguire Thrift "s Tutorial Node.JS ma ottenuto Cannot read property "tls" of undefined
Ecco alcune informazioni di base:
Sistema operativo: Windows 7
Versione Node.JS: v0.10.34
Versione del compilatore di risparmio: 0.9.2
Ecco i miei passi:
- Ottieni una parsimonia v0.9.2 Windows Qui
- Copia tutorial.thrift e shared.thrift (da tutorial) in un regista vuoto
ProjRoot
- Genera file .js con l'exe ottenuto dal passaggio 1
thrift.0.9.2 -r --gen js:node tutorial.thrift
eshared.thrift
creare
package.json
con il seguente contenuto:{ "name": "thrifttest", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "thrift": "~0.9.2" } }
- mettere il codice lato server sotto il server sezione in NodeServer.js
- Nel terminale, esegui
npm install
poinode NodeServer.js
E ho ricevuto il seguente errore:
...ProjRootnode_modulesthriftlibthriftserver.js:89
if (options.tls) {
^
TypeError: Cannot read property "tls" of undefined
at Object.exports.createMultiplexServer (...ProjRootnode_modulesthriftlibthrifts
erver.js:89:14)
at Object.exports.createServer (...ProjRootnode_modulesthriftlibthriftserver.js:106:18)
at Object.<anonymous> (...ProjRootNodeServer.js:8:21)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:929:3
è un insetto? o sto trascurando qualcosa?
risposte:
7 per risposta № 1Risposta originale
Ho temporaneamente risolvere questo problema modificando il codice su server.js da:
if (options.tls) {
return tls.createServer(options.tls, serverImpl);
} else {
return net.createServer(serverImpl);
}
a
return net.createServer(serverImpl);
Quello sta rimuovendo il if
dichiarazione.
Non vedo l'ora di trovare una soluzione che affronti davvero il problema
Risposta aggiornata Quando si crea il server,
var server = thrift.createServer(Calculator, {...})
Il createServer
la firma prevede un terzo argomento options
, passando un oggetto vuoto a createServer
var server = thrift.createServer(Calculator, {...}, {})
^
risolve il problema