我正在构建我的第一个Node应用程序,但在使用GET请求显示我想要的页面时遇到了一些麻烦。我已经安装了ejs(欢迎提出意见!)所以我的理解是我不需要定义'视图'夹。到目前为止,这是我的路线文件:
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,什么都没有用。我做错了什么?
编辑:这是我的server.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')
});
答案 0 :(得分:1)
views文件夹直接放在根文件夹中,并使用我们的app.set('views',path.join(__ dirname,'views'));将它指向views文件夹。所以在渲染中直接提到视图名称。
router.get('/', function(req, res, next){
res.render('index');
});
答案 1 :(得分:0)
感谢大家的帮助,结果只是一个错字。 router.get('/'), function(req, res, next)
应该是router.get('/', function(req, res, next)
。