如何使用gridFs将我的后端与我的前端与angular2和ionic2连接?

时间:2017-05-01 13:31:46

标签: node.js mongodb angular mongoose ionic2

我使用gridFs在我的数据库中创建了一个文件。该文件如下:

storeAudio.js

   var mongoose = require('mongoose');
    var fs = require('fs');
    var Grid = require('gridfs-stream');
    Grid.mongo=mongoose.mongo;


    //establish mongoDB connection
     mongoose.Promise = global.Promise;
    var conn = mongoose.createConnection('mongodb://localhost:27017/aHolyBoly');
    conn.once('open',function(){
       var gfs = Grid(conn.db);
     // var db = new mongo.Db('aHolyBoly', new mongo.Server("127.0.0.1", 27017));
    //var gfs = Grid(db, mongo);

    var writeStream = gfs.createWriteStream({
        filename:'song1.mp3'
    });
    fs.createReadStream('../list/hero.mp3').pipe(writeStream);
    writeStream.on('close',function(file){
        console.log(file.filename +'Written to db');
    });
    });

现在,我想使用express和node创建一个API,这样我就可以使用Ionic2Angular2将我的Backend与前端连接起来。

所以我看到了这个教程: https://www.joshmorony.com/building-a-review-app-with-ionic-2-mongodb-node/ 现在在本教程中,HTTP动词GETPOST等用于进行API调用,然后将其用作提供程序。这是继续我的项目的方法吗?如果是这样,那么我有一些问题如下:

在上面提到的链接中有 server.js 文件。在该文件中,代码为mongoose.connect('mongodb://localhost/reviewking');为什么如果已经在我的文件 storeAudio.js 中使用过,又会再次使用它?

其次,是否应使用gridFs以类似方式使用HTTP谓词?

注意:我首次使用所有内容(ionic2angular2除外)。如果需要提供更多输入,请与我们联系。如果在这篇文章中找到错误,我很抱歉。

1 个答案:

答案 0 :(得分:0)

以下是我在离子3应用程序中的一个提供商的示例函数,该应用程序正在调用我的API:

getClients(){

let headers = new Headers();
headers.append('Authorization', this.authService.token);

this.http.get('https://ptassist.herokuapp.com/api/auth/' + this.authService.user._id, {headers: headers})
  .map(res => res.json())
  .subscribe(data => {
    this.clientlist = data;
    console.log(this.clientlist);
  }, (err) => {

    console.log(err);
  });





}

至于你关于mongoose连接的其他问题,我不完全确定,你是否在github等上编写代码?