1

私は初心者ノードです。私は、SQL Serverで、次のストアドプロシージャを書いた:イメージをWebサービスノードjsに送信し、このイメージパラメータでストアドプロシージャを実行する方法

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 

マイNodeJS Webサービス:

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); 
     }); 
    }); 
}); 

しかし、私はアンドロイドで画像をHTTPリクエストのPOSTを送信する(または郵便配達のアプリケーションを使用する方法がわかりませんまたはFirefoxのHttpRequester)をこのWebサービスに追加する方法と、実行するストアドプロシージャのパラメータにイメージを追加する方法について説明します。

+0

一度私はファイルの郵便配達員を使ってみました - それほど滑らかではありませんでした。私はちょうど私が必要としていた小さなスクリプト、例えば統合テストを書いた。 request npmモジュールを見てください。 – Lazyexpert

答えて

0

通常、画像などのバイナリデータはデータベースに保存されません。そのレベルのストレージは高価(比較的話している)であり、そんなことを意味するものではありません。

イメージは、名前が変更された(拡張子のない)ファイルとしてファイルシステムに保存され、それらを表すためにデータベースに一意のレコードが与えられます。

このレコードは通常あります

  • 一意に生成されたIDまたはUUID
  • ファイルタイプを
  • ファイル名
  • 日付がアップロード
  • ファイルサイズ
  • など

いくつかのアプリは、この時点で画像を最適化します。なぜなら、最近、カメラが驚くほど良く見え、ファイルが巨大であるからです(私はこれを強くお勧めします)。

アプリに「画像」を返すには、今説明したデータベースレコードの一意の識別子を使用してURLを生成します。これはアプリ内のパスに対応するか、代わりにその方向を向いている場合は外部のCDN URLに対応します。 「アプリ内」アプローチと言えばアプリケーションは、URL(yoursite.com/images/1)で提供されたキーに基づいてレコードを検索し、格納されている場所からバイナリデータを取得し、グラフィックスライブラリを使用してレンダリングします(nodejsのバージョンはGD libraryです)。

0

nodejsでgmモジュールを探します。私はgmを使って自分のプロジェクトに画像アップロードを実装しました。すべてがここで説明されていますhttps://www.npmjs.com/package/gm

関連する問題