javascript - express 路由无法访问二级目录
ringa_lee
ringa_lee 2017-04-11 08:58:48
[JavaScript讨论组]

1、问题描述:
初学express,首次配置,发现路由无法设置访问到views的二级目录。

2、代码:
index.js

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

var title = 'xxxxx';

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('index', { title: title});
});

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


module.exports = router;

app.js

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

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');


app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// app.use(express.static(path.join(__dirname, 'views')));

app.use('/', routes);

3、报错信息

GET /dna 500 476.011 ms - 1214
Error: Failed to lookup view "error" in views directory "xxxxxxx"                                                                                                                                                                                                                       
    at EventEmitter.render (xxxxxxxxxxxxx\node_modules\express\lib\application.js:579:17)                                                                                                                                                                                                           
    at ServerResponse.render (xxxxxxxxxxxxxxxxxxxxxxxx:961:7)                                                                                                                                                                                                             
    at xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\app.js:52:7                           

4、目录结构

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
高洛峰

问题找到了,我先加了一个error.jade文件,然后输出了异常消息,发现其实是视图报错,里面include的文件找不到,所以报错了,贴一下视图文件吧

doctype html
html

head
    include ../layout/_mate

body
    include ../layout/_lteie9
    include ../layout/_header.html
    include dna.html
    include ../layout/_footer.html

因为之前没有加../,原来访问是基于视图的相对路径来访问的

@silenceboy @Ull

迷茫

这个不是找不到的问题,是你views目录里边要有一个error.jade的视图文件

大家讲道理

路由设置了吗?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号