错误:无法查找视图

时间:2014-08-19 01:28:54

标签: node.js express

如果我尝试打开localhost:3000或localhost:3000 / login,则会出现以下错误。有人可以帮我解决问题吗?这很奇怪。非常感谢

我的代码

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');
});

这是我的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": {}
}

1 个答案:

答案 0 :(得分:8)

这是问题所在。

更改此行

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

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

因为当你只说__dirname + 'views'时它会在{appName}/views/fileToRender中查找。但是因为您说__dirname + 'testapp/views'它会搜索{appName}/testapp/views/fileToRender