Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Node.js中,res.render在router.get上返回404错误_Javascript_Node.js_Express_Routes_Ejs - Fatal编程技术网

Javascript 在Node.js中,res.render在router.get上返回404错误

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){

我正在构建我的第一个节点应用程序,在显示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,但没有任何效果。我做错了什么

编辑:这是我的服务器.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'。我们已经提到了路径。