NodeJs + ExpressJS:无法接受请求的路由器级中间件
问题描述:
我正在对我的服务器进行REST调用。现在,当我设计我的代码来处理应用程序级别的路由时,它的工作没有任何问题。但是,当我处理使用路由器级中间件它不工作,它NodeJs + ExpressJS:无法接受请求的路由器级中间件
var https = require("https");
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var path = require('path');
var routes = require('./server'); //require server directory
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.set('views', path.join(__dirname, 'views'));
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res, next) {
res.sendFile(path.join(__dirname, 'views', 'index.html'));
});
app.listen(3000);
module.exports = app;
这是我的服务器目录中我有一个文件index.js ,当我尝试在这里处理该请求使用路由器它不是服用请求。我能够要求页面到我的app.js,但只是路由器的东西不工作。
var https = require("https");
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var gh = require('parse-github-url'); // use to break the url user provides into various parts
var moment = require('moment'); // for Parse, validate, manipulate, and display dates in JavaScript.
var router = express.Router();
var Promise = require('bluebird');
var _ = require('underscore-node');
router.post('/click', function(req, res){
console.log("ewewew");
});
module.exports = router;
当我一直尝试处理在我的应用程序app.js中的请求其工作正常。 对于EG:
// If I keep it here it in app.js its working fine.
app.post('/click',function(){
console.log("dwfe");
})
答
您必须先注册与应用路由器如下图所示
app.use('/',router);
express.Router()
只是创建另一个路由器,一个孤立的中间件实例。它必须被添加到app
中间件堆栈中才能被实际调用。
答
你只需要在路由器对象附加到应用对象:
app.use('/', router);
第一个参数是基本URL。
+0
谢谢。这真是愚蠢的我。 –
您需要将路由器注册到应用程序。 – Sikorski
你的意思是var router = express.Router();在app.js –