Ich verwende bson-ext als native Bindung.Kann die bson-ext nativen Funktionen nicht aufrufen
Das Erstellen der nativen Datei .node
hat bisher gut funktioniert. Ich installierte GCC
, make
und lief node-gyp configure
und node-gyp build
. Ich schließe jetzt die Datei in meinem node
App wie so:
var bson = require('./bson/build/Release/bson.node');
var object = bson.BSON.prototype;
console.log(object.serialize('hey'))
Das Problem ist, erhalte ich diesen Fehler:
console.log(object.serialize({test: "turkey"}))
TypeError: Illegal invocation
ich verwirrt hier, weil, wenn ich console.log(object)
Es gibt aus:
BSON {
calculateObjectSize: [Function: calculateObjectSize],
serialize: [Function: serialize],
serializeWithBufferAndIndex: [Function: serializeWithBufferAndIndex],
deserialize: [Function: deserialize],
deserializeStream: [Function: deserializeStream] }
Dies sind die nativen Funktionen von C++, die zu bson.node
gebaut wurden, richtig? Aber jetzt bin ich einfach nicht sicher, wie ich sie anrufen soll. Ich habe ihre GitHub-Seite auch für die Dokumentation überprüft, aber ohne Glück.
bearbeiten: Folgende:
var bson = require('./bson/build/Release/bson');
console.log(bson.BSON)
Ausgänge:
[Function: BSON]
nächstes Ich betreibe:
console.log(bson.BSON().serialize({turkey: 'hey'}));
Aber rec eive:
console.log(bson.BSON().serialize({turkey: 'hey'}));
TypeError: First argument passed in must be an array of types
Dann laufe ich:
console.log(bson.BSON(['BSON']).serialize({turkey: 'hey'}));
Und erhalten:
Segmentation fault