【发布时间】:2016-08-04 18:26:41
【问题描述】:
基本上我只是想在 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 基本上会产生错误 错误是:throw new TypeError('app.use() requires middleware functions');
我该如何解决?我也知道它的路由器返回对象。和 app.use 参数中的期望函数。但是我如何才能实现我想要的 node.js 的 MVC 模式?
【问题讨论】:
-
这可能只是复制时的拼写错误,但第二个文件包含
module.export而不是module.exports,这使得CvRouter未定义... -
感谢@oshnaps 它的错字。请正确回答,以便我给你加分。我的问题已经解决了。
-
刚做了,谢谢!