基本上我只是尝试在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')
})
router.js
var CvRouter = require('./routes/cv')
module.exports = function(app) {
app.use([CvRouter]);
};
Basicaly这个最后一个文件router.js在我使用app.use([CvRouter])时会产生错误 错误是:抛出新的TypeError('app.use()需要中间件函数');
我怎么解决它?我也知道它的路由器的返回对象。和app.use期望参数中的函数。但我怎么能达到我想要的node.js的MVC模式?
答案 0 :(得分:2)
正如评论中所述 - 你有一个错字。
文件routes/cv.js
包含module.export
而不是module.exports
,这使得CvRouter
未定义。
答案 1 :(得分:0)
杀死数组文字
var CvRouter = require('./routes/cv')
module.exports = function(app) {
app.use(CvRouter);
};