我有一个简单的快速应用程序(版本4.9.0),我试图将我的中间件放入外部文件。
我的app.js有:
var middleware = require('./lib/middleware');
app.get('/foo', middleware.configcache);
/ lib / middleware包含index.js:
exports.configcache = require('./configcache.js');
/lib/middleware/configcache.js包含:
function configcache(req, res, next) {
console.log("hello world");
next();
}
module.exports = configcache;
当我向/ foo发出GET请求时,我得到了404.有人可以建议吗?
答案 0 :(得分:0)
这就是我在其中一个应用中使用它的方式:
app.js:
var routes = require('./routes/index');
路由/ index.js:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res) {
res.render('index', {
title: req.i18n.t("meta.title.index")
});
});
module.exports = router;
我使用yeoman express generator搭建了这个快速项目:yo express
所以你的问题的答案是:不要调用next(),但是当你使用router.get()时,向浏览器发送一个实际的响应:
function configcache(req, res, next) {
res.send(200, 'hello world');
}
或使用router.use,如下所述:http://expressjs.com/guide/using-middleware.html