简体   繁体   English

错误:无法查找视图

[英]Error: Failed to lookup view

Iam getting following error if I try to open the localhost:3000 or localhost:3000/login. 如果我尝试打开localhost:3000或localhost:3000 / login,我会收到以下错误。 Can someone help me what is the problem? 有人可以帮我解决问题吗? It is very strange. 这很奇怪。 Many thanks 非常感谢

My Code 我的守则

var express = require('express');
var crypto = require('crypto');
var bodyParser = require('body-parser');
var flash    = require('connect-flash');
var cookieParser = require('cookie-parser');
var session      = require('express-session');
var path = require ('path');
var port = process.env.PORT || 3000;


var MongoClient = require('mongodb').MongoClient,
    ObjectID = require('mongodb').ObjectID, 
    url = require('url');

var db;
//var mongo;

//var collection;
//dataExt = require('./routes/serverExtend');
// setup middleware
var app = express();
app.use(bodyParser());
app.use(flash());
app.use(cookieParser('secret'));
app.use(session({cookie: { secret: 'keyboard cat', maxAge: 60000 }}));


app.use(express.static(__dirname + 'public')); //setup static public directory

app.set('views', __dirname + 'testapp/views'); //optional since express defaults to CWD/views
app.set('view engine', 'ejs');

// Start server
app.listen(port);
console.log('App started on port ' + port);


// Initialize connection once
MongoClient.connect("mongodb://localhost:27017/testDB", function(err, database) { //"mongodb://localhost:27017/test"
  if(err) throw err;

 db = database;

});




app.get('/', function(req, res) {
    res.render('index.ejs', { message: req.flash('signupMessage')}); // load the index.ejs file

app.get('/login', function(req, res) {
    res.render('login.ejs');
});

Here is my package.json 这是我的package.json

{
    "name": "NodejsStarterApp",
    "version": "0.0.1",
    "description": "A sample nodejs"
    "dependencies": {
        "express" : "~4.0.0",           
        "ejs" : "*",    
        "mongodb":"*", 
        "connect-flash" : "~0.1.1",
        "morgan": "~1.0.0",
            "body-parser": "*",
            "cookie-parser": "~1.0.0",
            "express-session": "~1.0.0"


    },
    "engines": {
        "node": "0.10.26"
    },
    "repository": {}
}

Here is the problem. 这是问题所在。

change this line 改变这一行

app.set('views', __dirname + 'testapp/views');

to

app.set('views', __dirname + 'views');

Because when you say just __dirname + 'views' it looks in {appName}/views/fileToRender . 因为当你说__dirname + 'views'它会在{appName}/views/fileToRender But because you are saying __dirname + 'testapp/views' it will search {appName}/testapp/views/fileToRender . 但是因为你说__dirname + 'testapp/views'它会搜索{appName}/testapp/views/fileToRender

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM