使用express node.js的路由,但是express.Router没有定义

我的默认路由/索引路由器的代码

/* GET home page. */ exports.index = function(req, res){ res.render('user', { title: 'Abcd' }); }; var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); router.get('/helloworld', function(req, res) { res.render('helloworld', { title: 'Hello, World!' }) }); module.exports = router; 

得到错误,因为不能调用方法得到undefined.I新的节点js请任何人帮助我。

路由器是第一次使用post()get()的快速对象隐式注册的快递中间件 。 你可以但不必明确地调用use() ,它允许你使用express来注册各种中间件,因此可以考虑优先级来configuration处理和行为。

正确的初始化和使用可能如下所示:

编辑 :改变了例子是一个“完整的”http服务器。

app.js

 var http = require('http'); var express = require('express'); // Requiring express exports a function that creates the application. Call it! var app = express(); // Set port to listen to app.set('port', process.env.PORT || 3000); // Set view engine app.set('view engine', 'jade'); // Tell express to use the router middleware // Can be omitted if precedence doesn't matter // (eg for loading static resources) app.use(app.router); // Add callback handler for home (/) route app.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); // Create http server by passing "app" to it: http.createServer(app).listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port')); }); 

现在,如果您将最小视图放置到视图的默认文件夹中

意见/ index.jade

 doctype 5 html head meta(charset='utf-8') title #{title} meta(name='viewport', content='width=device-width, initial-scale=1.0') body div h1 Gotcha! Title is "#{title}" 

…并从控制台启动您的服务器…

 $ node app.js 

…你应该有你的第一个节点/快递/翡翠动力的应用程序启动和运行!

尝试升级到Express 4.x. 你可能运行一个3.x的味道。