快速通过Node.js路由 - 无法获取/

问题描述 投票:0回答:1

我正在构建我的第一个节点/快速应用程序并且正在跟随tut,在this link的第2步出错。

我已经能够通过app.get渲染功能将数据路由到模板。在下一步中,我尝试将路由移动到routes目录中的index.js,这是我收到错误的地方。

目录结构

directory structure for app

hellotest.js

var express = require('express');
var app = express();
var routes = express.Router('./routes/index');

app.set('view engine','ejs');

var server = app.listen (2000, function(){ console.log('Waiting for you on port 2000'); });

app.use('/', routes);

index.js

var express = require('express');
var app = express();
var routes = express.Router('./routes/index');

app.get ('/', function(req, res){ res.render('default',{title: 'Home', body: 'Datatest'}); });

app.get ('/about-us', function(req, res){ res.send('<h1>Lucius Websystems</h1>Amsterdam, The Netherlands'); });

app.get ('/about/:name?', function(req, res){ var name = req.params.name; res.send('<h1>' +name +'</h1>About text'); });

浏览器错误

error cannot get /

没有CLI错误。

我已经仔细阅读了几次教程,我认为在解耦路由时有一个缺失(或隐含)的步骤。

有人可以请帮助我理解为什么我得到无法获取/错误以及如何正确路由输出?

javascript node.js express get
1个回答
1
投票

你非常接近!问题是你在两个不同的地方定义你的app

相反,您的index.js应该将路由器导出到您在hellotest.js中实例化的服务器。

Index.js应如下所示:

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

routes.get('/', function(req, res){ res.render('default',{title: 'Home', body: 'Datatest'}); });

routes.get('/about-us', function(req, res){ res.send('<h1>Lucius Websystems</h1>Amsterdam, The Netherlands'); });

routes.get('/about/:name?', function(req, res){ var name = req.params.name; res.send('<h1>' +name +'</h1>About text'); });

module.exports = routes;

并且hellotest.js应该在顶部有这条线:

var routes = require('./routes/index');

© www.soinside.com 2019 - 2024. All rights reserved.