如何将节点模块定义的快速路由传递给主index.js文件

时间:2017-02-13 20:06:42

标签: node.js express node-modules

例如,在我的node_module文件夹中,我有一个名为project的npm,它有一些设定的快速路线。例如,

var express = require('express');
var router = express.Router();

router.get('/', function (req, res, next) {
    res.render('indexPage', {title: 'Homepage'});
});

module.exports = router;

保存在routes.js文件

如何在主节点项目文件index.js文件中访问它?

我尝试使用require()功能,但是,这不起作用。

1 个答案:

答案 0 :(得分:0)

将应用程序设置为Express应用程序后,添加如下所示的路由中间件。

此外,我已经为任何初学者添加了一些有用的代码部分(一个简单的Express应用程序):

// defining an express app
var express = require('express')
var app = express()
var server = require('http').Server(app)


// setting the express app - in case of needed
app.set('x-powered-by', false) // hide x-powered-by header!
app.set('view engine', 'ejs'); // set EJS as view engine!
app.set('views', __dirname + '/views'); // specifying the directory that contains view files

// THIS IS YOUR ANSWER PART
app.use(require('./routes'))
... 
... 
// Other middlewares
app.use(require('./middlewares/someMiddleware'))
// Catching 404 errors
app.use('*', function(req,res){
    res.status(404).send("URL not found.")
})
// Catching and evaluating the other errors 
app.use(require("./middlewares/errorHandler"))

server.listen(3001, function() {
    console.log('APP Server is listening HTTP port 3001')
})

一般来说,最后一条路线是404错误。因此,如果请求未在404之前的任何路径中被捕获,则表示"页面找不到"。

此外,errorHandler中间件需要4个参数(错误,请求,响应和下一个)。

因此,如果您在routes.js中遇到错误,并且使用routesnext(err)个文件中发送此错误,则可能会在errorHandler上发现此错误中间件。

这是开始开发Express应用程序时每个人都需要的基本信息。

更多详情:
http://expressjs.com/en/guide/using-middleware.html

祝你好运......