Router.use () требует функции промежуточного программного обеспечения, но получил объект в backend-server.js, используя nodeJS - PullRequest
0 голосов
/ 03 января 2019

У меня есть мой бэкэнд в NodeJs и интерфейс в angular2 +. Я получаю эту ошибку, когда запускаю файл server.js в Терминале с помощью команды

 nodemon server.js

Ошибка -

throw new TypeError ('Router.use () требует функции промежуточного программного обеспечения, но получил '+ gettype (fn)) ^

TypeError: Router.use () требует функцию промежуточного программного обеспечения, но получил Объект

И это указывает на эту строку -

 app.use('/login', require('./api-mine-server/controller/login- 
 controller'));

Я проверил много сообщений на stackoverflow с той же ошибкой, и я попробовал несколько, но я не получаю вывод. Я еще не внедрил токен

server.js

// Server definitions
require('rootpath')();
var express = require('express');
var cors = require('cors');
var bodyParser = require('body-parser');
const neo4j = require('neo4j-driver').v1;

var restify = require('restify');
var expressJwt = require('express-jwt');
var session = require('express-session');
var config = require('./config.json')
var app = express();
var router = express.Router();
module.exports = router;
var port = 3003;
app.use(restify.plugins.bodyParser());

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

app.use(cors());



//Express Token


app.use(session({ secret: config.secret, resave: false, saveUninitialized: true }));

// use Express-JWT auth to secure the api, the token can be passed in the authorization header or querystring.



app.use(expressJwt({
    secret: config.secret,
    getToken: function (req) {
        console.log("#######  ", req.headers)
        if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') {
            return req.headers.authorization.split(' ')[1];
        } else if (req.query && req.query.token) {
            return req.query.token;
        }
        return null;
    }
})
);

// -----------------  File Uploader code   -------------------------

// var express = require('express');
var multer = require('multer');
var path = require('path');
var app = express();
var mkdirp = require('mkdirp')
var port = 3003;
// var fileNameController = require('./api-mine-server/api-mine-controller');



// File Upload YAML and WSDL
var myModuleYaml = require('./api-mine-server/controller/api-mine-yaml-controller');
var myModuleWsdl = require ('./api-mine-server/wsdl-server/api-mine-wsdl-controller.js')



// specify the folder
 app.use(express.static(path.join(__dirname, 'uploads')));   //uncomment it
// // headers and content type
app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");              //uncomment it
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});


var storage = multer.diskStorage({

    destination: function (req, file, cb) {
        //  console.log("im in storage");
        //  var dir = './uploads/'+req.dataProviderId+'/'+req.consentId;
        var dir = './uploads/';
        mkdirp(dir, function (err) {
            if (err) {
                console.error(err);
            }
            // move cb to here
            cb(null, dir);
        });
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname);
    }

});
var upload = multer({ storage: storage });



app.post("/upload", upload.array("uploads[]", 12), function (req, res) {

console.log("request = ", req)

    fileName = req.files[0].path;
    serverOrganisation = req.body.uploads[0];
    serverDepartment = req.body.uploads[1];
    serverSystem = req.body.uploads[2];

    console.log("organisation =", serverOrganisation , " department = ",serverDepartment, " system = ", serverSystem)

    var lastFive = fileName.substr(fileName.length - 5);

    console.log( lastFive);

    console.log("Filename.extension = lastFive letters = ", lastFive)

    if(lastFive == ".yaml"){

        myModuleYaml.defineRoutes(router, fileName);
    console.log("global variable FileName = ", fileName)
    }

if (lastFive == ".wsdl"){
    myModuleWsdl.defineRoutes(router,fileName,serverOrganisation,serverDepartment,serverSystem)
    console.log("global variable FileName = ", fileName)

}

    console.log('files', req.files);
    console.log("request filename = ", req.files[0].filename);
    console.log("request file path = ", req.files[0].path);
    res.send(req.files);
});



//reason for removal of undefined
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');

app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));


// app.use(app.router);
// routes.initialize(app);


app.use('/seekOrganization', require('./api-mine-server/controller/seekOrganization-controller'));


app.use('/deleteAll', require('./api-mine-server/controller/deleteAll-controller'));
app.use('/deleteRelationships', require('./api-mine-server/controller/deleteRelationships-controller'));

app.use('/seekExtraction', require('./api-mine-server/controller/seekExtraction-controller'));
app.use('/seekIntersection', require('./api-mine-server/controller/seekIntersection-controller'))
app.use('/seekParentNodeCount', require('./api-mine-server/controller/seekParentNodeCount-controller'))

app.use('/seekAccurateParentNodeCount', require('./api-mine-server/controller/seekAccurateParentNodeCount-controller'));
app.use('/seekAccurateExtraction', require('./api-mine-server/controller/seekAccurateExtraction-controller'));


//-------  server.js variables   -------------------

//var cors = require('cors');

var fs = require('fs');

var path = require('path');

var compression = require('compression');
var morgan = require('morgan');
var app = express();
var router = express.Router();
app.use(compression());
app.use(cors());

//reason for removal of undefined
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');

app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));

//login and registration


app.use('/register', require('./api-mine-server/controller/register-controller'));
app.use('/login', require('./api-mine-server/controller/login-controller'));




var port = 3003;
var server = app.listen(process.env.PORT || port, function() {
    console.log('Server listening at http://' + server.address().address + ':' + server.address().port);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...