我正在对我的服务器进行REST调用。现在,当我设计我的代码来处理应用程序级别的路由时,它的工作没有任何问题。但是,当我使用路由器级中间件处理它时,它无法正常工作,
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");
})
答案 0 :(得分:1)
您必须使用app注册路由器,如下所示
app.use('/',router);
express.Router()
只创建另一个路由器,一个孤立的中间件实例。必须将其添加到app
中间件堆栈才能实际调用它。
答案 1 :(得分:1)
您只需将路由器对象附加到app对象:
app.use('/', router);
第一个参数是基本网址。