Javascript 在Node.js中,res.render在router.get上返回404错误
我正在构建我的第一个节点应用程序,在显示GET请求所需的页面时遇到了一些问题。我已经安装了ejs(欢迎发表意见!),所以我的理解是,我不需要定义“视图”文件夹。这是迄今为止我的路由文件:Javascript 在Node.js中,res.render在router.get上返回404错误,javascript,node.js,express,routes,ejs,Javascript,Node.js,Express,Routes,Ejs,我正在构建我的第一个节点应用程序,在显示GET请求所需的页面时遇到了一些问题。我已经安装了ejs(欢迎发表意见!),所以我的理解是,我不需要定义“视图”文件夹。这是迄今为止我的路由文件: const express = require('express'); const router = express.Router(); const Event = require('../models/event') router.get('/'), function(req, res, next){
const express = require('express');
const router = express.Router();
const Event = require('../models/event')
router.get('/'), function(req, res, next){
/* Event.find({}).then(function(events){
res.send(events);
});
});*/
res.render('../../index');
};
router.post('/events', (req, res) => {
Event.create(req.body);
res.send({type: POST})
});
module.exports = router;
数据库连接得很好,我可以从get请求中注释掉的代码中看到这一点。但由于某些原因,我无法呈现我的索引文件。我的文件结构如下:
文件树:所以我需要上两层楼,对吗?我尝试了index,index.ejs,../index,views/index,但没有任何效果。我做错了什么 编辑:这是我的服务器.js:
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const routes = require('./routes/index');
var path = require("path");
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.use(bodyParser.json());
app.use(express.static('public'));
app.use(routes);
app.use(bodyParser.urlencoded({extended: true}))
mongoose.connect('mongodb://junk:junk@ds141242.mlab.com:41242/alaska-events');
app.listen(3000, () => {
console.log('listening on 3000')
});
视图文件夹直接放在根文件夹中,使用we-app.set('views',path.join('views');将其指向“视图”文件夹。因此,在渲染中直接提及视图名称
router.get('/', function(req, res, next){
res.render('index');
});
谢谢大家的帮助,结果只是个打字错误
router.get('/')、function(req,res,next)
应该是router.get('/')、function(req,res,next)
Hmmm,也许你需要设置app.set('views',path.join(u dirname,'views'));
,这样你的视图文件夹位置是已知的,你不需要知道上下多少层才能找到它。add:app.set('view engine','ejs');在you server.jsPaolo中,对不起,我应该指定我已经为ejs设置了视图引擎。Andy,我添加了您所说的内容,还定义了var path=require(“path”);
,因为我遇到了一个错误(“ReferenceError:path未定义”)。仍然不走运。永远不要在这里放置凭据!!你的意思是像router.get('/',function(req,res,next){res.render('views/index');});
我试过了,也只是res.render('index');……而不是像在设置路径中那样查看'views/index'。我们已经提到了路径。