1

Am trying to split and merge the uploaded pdf file in nodejs,while am running i getting error" TypeError: Cannot read property 'FileSystem' of undefined","ReferenceError: FS is not defined" help me to fix it.

 var express = require('express');
 var path = require('path');
 var favicon = require('serve-favicon');
 var logger = require('morgan');
 var cookieParser = require('cookie-parser');
 var bodyParser = require('body-parser');
 var fileUpload = require('express-fileupload');
 var routes = require('./routes/index');
 var users = require('./routes/users');
 var gm = require('gm');
 var app = express();
 var fs =require('fs');

 app.use(fileUpload());

 app.post('/upload', function(req, res) {
    var sampleFile;
    console.log("upload");
    if (!req.files) {
        res.send('No files were uploaded.');
        return;
    }

    new FS.Store.FileSystem("thumbs", {
        transformWrite: function(fileObj, readStream, writeStream) {
            gm(readStream, fileObj.name() + '[0]').resize('100',         '100').stream('png').pipe(writeStream);
        },
        beforeWrite: function (fileObj) {
            return {
                extension: 'pdf',
                type: 'pdf'
            };
        },
        path: "./public/images/",
    })

    sampleFile = req.files.sampleFile;
    console.log("statrttttttttt");
    console.log(req);
    var fileName=sampleFile.name;

    sampleFile.mv('./public/images/'+fileName, function(err) {
        if (err) {
             res.status(500).send(err);
        }
        else {
            res.send("<html><h1><object data='/images/"+fileName+"'</h1></object></html>");
        }
    });
})
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/js',express.static(path.join(__dirname, 'public/javascripts')));

app.use('/', routes);
app.use('/users', users);

module.exports = app;
buld0zzr
  • 962
  • 5
  • 10
Vijay Vino
  • 11
  • 1
  • 2

1 Answers1

0
new FS.Store.FileSystem("thumbs", {
      transformWrite: function(fileObj, readStream, writeStream) {
        gm(readStream, fileObj.name() + '[0]').resize('100', '100').stream('png').pipe(writeStream);
      },

javascript is case senesitive. you are referencing to fs module as:

var fs = require('fs');

and using FS.

Mridul Kashyap
  • 704
  • 1
  • 5
  • 12
  • if i use fs instead of FS also am getting an error "TypeError: Cannot read property 'FileSystem' of undefined" – Vijay Vino Jul 27 '16 at 07:28
  • I believe you're using this [plugin](https://github.com/CollectionFS/Meteor-CollectionFS). do you have it installed as your dependencies? also, i noticed it's deprecated, why don't you use a native node function to save file? [check this](http://stackoverflow.com/questions/2496710/writing-files-in-node-js) – Mridul Kashyap Jul 27 '16 at 07:44