Wie man image an den Web Service Knoten js sendet und dann die gespeicherte Prozedur mit diesem imageparameter ausführt

Ich bin Neuling Knoten js. Ich habe die folgende gespeicherte Prozedur in SQL server geschrieben:

CREATE PROCEDURE [dbo].[SP_ADDMESSAGE] @PhoneNumber nvarchar(50), @Type numeric(18,0), @Image Image=null, @MessageContent nvarchar(255)=null AS BEGIN insert Message([PhoneNumber],[Type],[Image],[MessageContent]) values(@PhoneNumber,@Type,@Image,@MessageContent) RETURN 1 END 

Mein NodeJS Web Service:

 app.post('/message/add',function(req,res){ sql.close(); // connect to your database sql.connect(config, function (err) { if (err) console.log(err); var request = new sql.Request(); request.input('PhoneNumber',sql.NVarChar(50),req.query.phoneNumber); request.input('Type',sql.Numeric,req.query.type); //request.input('Image',sql.Image,req.query.image); //How to add image into SP??? request.input('MessageContent',sql.NVarChar(225),req.query.messageContent); request.execute('SP_ADDMESSAGE').then(function(err,recordset,returnValue,affect){ console.dir(recordset); console.dir(err); }).catch(function(err) { console.log(err); }); }); }); 

Aber ich weiß nicht, wie man http-Anforderung POST mit image in Android (oder verwenden Sie Postman-Anwendung oder HttpRequester in Firefox) zu diesem Web-Service zu senden und wie man das image in Parameter in gespeicherte Prozedur zum Ausführen hinzufügen.

Typischerweise werden binäre data, wie imageer, nicht in der database gespeichert. memoryung auf dieser Ebene ist teuer (relativ gesehen) und ist nicht für diese Art von Dingen gemeint.

Vielmehr werden imageer auf dem filesystem als umbenannte (verlängerte) file gespeichert und mit einem eindeutigen datasatz in der database versehen, um sie darzustellen.

Diese Aufzeichnung hat in der Regel:

  • eine eindeutig erzeugte id oder uuid
  • der filetyp
  • der filename
  • die filegröße
  • date hochgeladen
  • etc.

Manche Apps werden das image an dieser Stelle optimieren, denn lass uns die camera sehen, sind wahnsinnig gut in diesen Tagen und fileen sind riesig (ich würde das sehr empfehlen).

Um das "image" in die App zurückzugeben, würdest du eine URL mit dem eindeutigen Bezeichner aus dem databaserekord erzeugen, den ich gerade erwähnt habe. Dies würde einem Pfad in der App oder einer externen CDN-URL entsprechen, wenn du diese Richtung gegangen bist. Sprechen mit dem "In-App" -Ansatz. Die App würde den datasatz auf der Grundlage des Schlüssels yoursite.com/images/1 , der in der URL ( yoursite.com/images/1 ) zur Verfügung gestellt wird, anschließend die Binärdaten von wo immer sie gespeichert ist, und sie mit einer Grafikbibliothek rendern (nodejs hat eine Version der GD-Bibliothek, die Ich habe vorher benutzt).

searchn Sie nach gm-module in nodejs. Ich habe das image hochgeladen in meinem Projekt mit gm. Alles wird hier erklärt https://www.npmjs.com/package/gm