Ich möchte eine benutzerdefinierte Datei in MongoDB speichern. Wie füge ich die Datei korrekt zum BSON-Objekt hinzu, um sie zu MongoDB hinzuzufügen? Wenn mein Ansatz falsch ist, zeigen Sie bitte in die richtige Richtung.Wie speichere ich eine Datei in MongoDB?
Unten ist der Client-Code. Diese jQuery-Funktionen erfassen den Text (benötigen Hilfe zum Dateiteil) für jedes Eingabefeld und senden ihn als BSON-Objekt an den Server.
$('#add').click(function()
{
console.log('Creating JSON object...');
var classCode = $('#classCode').val();
var professor = $('#professor').val();
var description = $('#description').val();
var file = $('#file').val();
var document =
{
'classCode':classCode,
'professor':professor,
'description':description,
'file':file,
'dateUploaded':new Date(),
'rating':0
};
console.log('Adding document.');
socket.emit('addDocument', document);
});
Der HTML-Code der Form:
<form>
<input type = 'text' placeholder = 'Class code' id = 'classCode'/>
<input type = 'text' placeholder = 'Document description' id = 'description'/>
<input type = 'text' placeholder = 'Professor' id = 'professor'/>
<input type = 'file' id = 'file'/>
<input type = 'submit' id = 'add'/>
</form>
Die serverseitige Code in Coffeescript:
#Uploads a document to the server. documentData is sent via javascript from submit.html
socket.on 'addDocument', (documentData) ->
console.log 'Adding document: ' + documentData
db.collection 'documents', (err, collection) ->
collection.insert documentData, safe:false
return
Ich habe über GridFS gelesen, aber ich kann kein Beispiel finden, das zeigt, wie die Datei vom Client an den Server gesendet wird, um sie im GridFS zu speichern. Haben Sie irgendwelche Quellen? – crzrcn
Ich bin nicht gut in Node.js, aber Sie können sich einige Tutorials ansehen (https://gist.github.com/1071705 und http://prazjain.wordpress.com/2012/04/18/upload-and -display-Datei-in-Nodejs-Anwendung /). In diesen Tutorials speichern sie die Datei in einem normalen Dateisystem, und Sie sollten 'fs' durch' GridFS' Code ersetzen –
Versuchen Sie zuerst, Datei in Ihr Dateisystem hochzuladen, um sicherzustellen, dass Ihr Code funktioniert. Und dann ersetzen Sie es mit 'GridFs' –