Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误app.use()需要中间件函数:(那么如何在express node.js中为app.use设置路由器)?_Node.js_Express_Routes - Fatal编程技术网

错误app.use()需要中间件函数:(那么如何在express node.js中为app.use设置路由器)?

错误app.use()需要中间件函数:(那么如何在express node.js中为app.use设置路由器)?,node.js,express,routes,Node.js,Express,Routes,基本上,我只是想在node.js应用程序中分离路由、模型和控制器。 我有以下文件来设置非常基本的node.js应用程序 控制器/cv.js module.exports = { get: function(req, res, next){ console.log("GET REQUESTS") next(); } } 路线/cv.js var express = require('express'); var CvRouter = express

基本上,我只是想在node.js应用程序中分离路由、模型和控制器。 我有以下文件来设置非常基本的node.js应用程序

控制器/cv.js

module.exports = {

   get: function(req, res, next){
        console.log("GET REQUESTS")
        next();
    }
}
路线/cv.js

var express = require('express');
var CvRouter = express.Router();
var CvController = require('../controller/cv')


CvRouter.get('/', function(req, res, next){
        console.log("GET REQUESTS")
        next();
    })

module.export = CvRouter
app.js

const express = require('express');
const bodyParser= require('body-parser')
var path = require('path')

const app = express();

app.use(bodyParser.urlencoded({extended: true}))
app.use(bodyParser.json())

 var router = express.Router();
 require('./router')(app)



app.listen(3000, function() {
  console.log('listening on 3000')
})
路由器.js

var CvRouter = require('./routes/cv')


module.exports = function(app) {
    app.use([CvRouter]);
};
基本上,当我使用app.use([CvRouter])时,最后一个文件router.js生成错误 错误是:抛出新类型错误('app.use()需要中间件函数')

我怎样才能解决它?我也知道它的返回对象是路由器。和app.use参数中的预期函数。但是我如何才能实现我想要的node.js的MVC模式呢?

杀死数组文字

var CvRouter = require('./routes/cv')

module.exports = function(app) {
    app.use(CvRouter);
};
杀死数组文字

var CvRouter = require('./routes/cv')

module.exports = function(app) {
    app.use(CvRouter);
};

正如在评论中所说的,你有一个打字错误。
文件
routes/cv.js
包含
module.export
而不是
module.exports
,这使得
CvRouter
未定义。

如注释中所述-您有一个打字错误。
文件
routes/cv.js
包含
module.export
而不是
module.exports
,这使得
CvRouter
未定义。

复制时可能只是键入错误,但第二个文件包含
module.export
而不是
module.exports
,这使得
CvRouter
未定义…感谢@oshnaps的输入错误。请正确回答,以便我给你打分。我的问题解决了,谢谢!复制时可能只是输入错误,但第二个文件包含
module.export
而不是
module.exports
,这使得
CvRouter
未定义…感谢@oshnaps它的输入错误。请正确回答,以便我给你打分。我的问题解决了,谢谢!