2017-01-23 9 views
0

私は簡単なブログアプリを書いています。だから、これはポストのための私のスキーマ次のようになります。テキストでimgを送り返す

const postSchema = new Schema({ 
    img: String, 
    title: String, 
    content: String, 
    date: String 
    }); 

私は/アップロードフォルダへのimgファイルをアップロードし、各ポストのための文字列として、このIMGへのパスを保存しています。

私はこれをどのようにクライアント側に送ることができますか?今のところ、JSONとして投稿しています。 テキスト(タイトル、コンテンツ、および日付)を表示するには問題はありませんが、画像は少し頭痛です。

これを適切な方法で行うにはどうすればよいですか?

私はこのブログのクライアント側にReact + Reduxを使用します。

答えて

0

ファイルシステムにアクセスするにはfsモジュールが必要です。

fs = require('fs'); 

そして、GETリクエストを受信するためのコールバックで:

var img = fs.readFileSync('./pathToImage'); 
res.writeHead(200, {'Content-Type': 'image/gif' }); 
res.end(img, 'binary'); 
0

あなたは、クライアント側でreactreduxを使用しているので、あなたはおそらくちょうどサーバー側パスを翻訳したいですクライアント側パスに移動します。たとえば、サーバーが/path/to/server/publicのファイルを配信していて、/path/to/server/public/uploadsにアップロードしている場合は、URLを/uploadsとして送信したいとします。

import { Component } from 'react' 
import { connect } from 'react-redux' 

class Post extends Component { 
    ... 
    render() { 
    <div className="post"> 
     /* Any other rendering you want to do here */ 
     <img src={this.props.img} /> 
    </div> 
    } 
} 
export default connect(
    /* Assuming your Redux store has the post stored as `post` */ 
    state => state.post, 
)(Post) 
クライアント側

、あなたは、単にのように、相対パスを使用して、あなたのURLを表示することができます

関連する問題