Node.js - 导致404的外部中间件

时间:2014-12-28 23:21:59

标签: node.js express middleware

我有一个简单的快速应用程序(版本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.有人可以建议吗?

1 个答案:

答案 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