Tuesday, 2 May 2017

How to link gridFS files to the models with the mongoose, so that I can fetch the data(mp3) file

Code:

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

server.js

   var express = require('express');
var app = express();
var mongoose = require('mongoose');
var morgan = require('morgan');
var bodyParser = require('body-Parser');
var methodOverride = require('method-override');
var cors = require('cors');

mongoose.connect('mongodb://localhost/aHolyBoly');

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({ 'extended': 'true' }));
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.use(methodOverride());
app.use(cors());

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    //res.header('Access-Control-Allow-Methods', 'DELETE, PUT');
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

var Songs = mongoose.model('Songs', {
    title: String
});


app.get('/api/songs', function (req, res) {
    console.log("fetching songs...");

    Songs.find(function (err, songs) {
        if (err)
            res.send(err)



        res.json(songs);
        console.log('Songs',+JSON.stringify(Songs));
    });
});

app.listen(8080);
console.log("App listening on port 8080");

How can I link my file(song1.mp3)that is stored in the database to the model that is used in server.js file, and can use this as an API.Please help.

Note: If any more inputs should be needed please let me know.Thank you.



via Aditya Jain

No comments:

Post a Comment