使用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的味道。