我试图在运行时创建路由。我试图创建一个平坦的网址结构,所以如果我们添加一篇文章,它会为它创建一个slu and,并将创建一个新的路线。在运行时创建nodejs express 4路由
我用快递4个新的路由器功能
app.js
var express = require('express');
var routes = require('./routes.js');
app.use('/', routes);
var server = http.createServer(app).listen(app.get('port'));
routes.js
var express = require('express');
var router = express.Router();
router.get('/new' ,site.new);
module.exports = router;
我试图创建在路由器的功能,并从应用程序中调用它。 js还在路由器中创建一个功能,同时共享应用程序实例文件
module.exports = app;
,把它
var app = require("./app.js");
它似乎没有任何其他的工作思路?
更新:
我有一个文件名为helpers.js,我增加了以下功能
module.exports={
addRoute:function(){
var express = require('express');
var router = express.Router();
var app = require('../app.js');
var routes = require('../routes.js');
router.get('/book', function (req, res) {
res.send('Hello World!');
});
app.use('/book', router);
},
我最后做的是
addRoute:函数(){
var express = require('express');
var router = express.Router();
var routes = require('../routes.js');
var app = require('../start-freedom1.js');
router.get('/book' ,function (req, res, next) {
res.send({"data":"kaki","values":"","errors":""});
});
for(var layer in app._router.stack){
if(app._router.stack[layer].name=="router"){
app._router.stack[layer].handle.stack.splice(0, 0, router.stack[0]);
console.log(app._router.stack[layer].handle.stack)
break;
}
}
///app.use('/', routes);
},
问题,我有router.get(“*”.....在路由文件的结尾,所以我总是看到404
看看这个* Hello世界的例子* http://expressjs.com/en/starter/hello-world.html并相应地改变你的app.js,并添加你所有的'var routes = require(' ./routes.js'); app.use('/',routes);'你的routes.js很好。 – Molda