Estoy intentando ejecutar el ejemplo de ahorro de servidor / cliente de nodejs pero no puedo hacer que se ejecute. Inicialmente, agregué el ahorro como una dependencia en mi package.json
archivo. Entonces hice un npm install
que instaló el ahorro. Entonces intenté ejecutar el servidor usando node NodeServer.js
. Me sale un error similar cuando intento correr NodeClient.js
.
Enlace al tutorial de Thrift nodejs - http://thrift.apache.org/tutorial/nodejs
He adjuntado la salida de los comandos relevantes a continuación.
h@h-vbox:~/git/nodejs-thrift$ ls
gen-js NodeClient.js NodeServer.js package.json shared.thrift tutorial.thrift
h@h-vbox:~/git/nodejs-thrift$ npm install
> ws@0.4.32 install /home/h/git/nodejs-thrift/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
make: Entering directory "/home/h/git/nodejs-thrift/node_modules/ws/build"
CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
bufferutil.target.mk:92: recipe for target "Release/obj.target/bufferutil/src/bufferutil.o" failed
make: Leaving directory "/home/h/git/nodejs-thrift/node_modules/ws/build"
nodethrift-server@0.0.1 /home/h/git/nodejs-thrift
└─┬ thrift@0.9.3
├── node-int64@0.3.3
├── q@1.0.1
└─┬ ws@0.4.32
├── commander@2.1.0
├── nan@1.0.0
├── options@0.0.6
└── tinycolor@0.0.1
npm WARN nodethrift-server@0.0.1 No description
npm WARN nodethrift-server@0.0.1 No repository field.
npm WARN nodethrift-server@0.0.1 No license field.
h@h-vbox:~/git/nodejs-thrift$ node NodeServer.js
/home/h/git/nodejs-thrift/gen-js/Calculator.js:384
Thrift.inherits(CalculatorClient, SharedServiceClient)
^
ReferenceError: Thrift is not defined
at Object.<anonymous> (/home/h/git/nodejs-thrift/gen-js/Calculator.js:384:1)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/h/git/nodejs-thrift/NodeServer.js:21:18)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
h@h-vbox:~/git/nodejs-thrift$
Respuestas
2 para la respuesta № 1Resultó que estaba cometiendo un error al generar mis archivos de ahorro utilizando el js
bandera de la js:node
bandera. La forma correcta de generar estos archivos es,
thrift -r --gen js:node tutorial.thrift