我的應用程序使用node.js作爲後端,Express作爲框架。我使用Netbeans作爲IDE,並獲得以下輸出。node.js express應用程序找不到jade視圖,404消息響應
Not Found
404
Error: Not Found
at /home/ingeborg/netbeans/GML/app.js:33:13
at Layer.handle [as handle_request] (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:317:13)
at /home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:335:12)
at next (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:275:10)
at /home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:635:15
at next (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:260:14)
at Function.handle (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:174:3)
at router (/home/ingeborg/netbeans/GML/node_modules/express/lib/router/index.js:47:12)
我有以下數據設置:
- node-modules
- public
- fonts
- images
- javascripts
- stylesheets
stylesheets.less
stylesheet.css
- routes
index.js
news.js
users.js
- views
index.jade
error.jade
news.jade
layout.jade
Gruntfile.js
app.js
gulpfile.js
package.json
的app.js看起來像這樣
var news = require('./routes/news');
var index = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
...
app.use('/', index);
app.use('/index', index);
app.use('/news', news);
app.use('/users', users);
,這是我index.jade
h3
a(href="news") link
和這是我的news.jade
h3 test
。
路由通過路由文件實現。 index.js
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index');
});
router.get('/index', function(req, res, next) {
res.render('index');
});
module.exports = router;
的news.js路由器文件
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('news', function(req, res, next) {
res.render('news');
});
module.exports = router;
以下情節
- 路由上的鏈接 「/」 和 「指標」 的作品被通緝。
- 「/ news」或「news」(在rounting,app.js和view文件中測試過)沒有路由。我不知道爲什麼路由不起作用。我希望我沒有忘記某事。
THX, 英格
?這是第一行還是它屬於另一個地方? – Ingeborg
您在app.js上指定爲所有/新聞路徑使用文件/routes/news.js,但在數據設置列表中,路由文件夾中缺少news.js文件。 – proton2b
我剛剛看到的第二件事是,您在app.use('/ news',news)app.js中一次路由兩次到/ news/news。並且第二次遍歷news.js文件router.get('news',function(req,res,next)..你可以嘗試訪問http:// localhost:3000/news/news或更改路由器。 get('news'... to router.get('/'... in your news.js. – proton2b