【发布时间】:2017-12-07 06:47:55
【问题描述】:
我正在构建我的第一个 Node 应用程序,但在使用 GET 请求显示我想要的页面时遇到了一些问题。我已经安装了 ejs(欢迎对此发表意见!)所以我的理解是我不需要定义“views”文件夹。到目前为止,这是我的路线文件:
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')
});
【问题讨论】:
-
嗯,也许您需要设置
app.set('views', path.join(__dirname, 'views'));以便知道您的视图文件夹位置,并且您不需要知道上下多少级才能找到它。 -
添加:app.set('view engine', 'ejs');在你 server.js 中
-
Paolo,对不起,我应该指定我已经为 ejs 设置了视图引擎。安迪,我添加了你所说的内容并定义了
var path = require("path");,因为我收到了一个错误(“ReferenceError:路径未定义”)。还是没有运气。 -
永远不要把凭据放在这里!!
标签: javascript node.js express routes ejs