Error: Search failed

I get the following error if I try to open localhost: 3000 or localhost: 3000 / login. Can someone help me what the problem is? 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

{
    "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": {}
}

      

+3


source to share


1 answer


Here's the problem.

change this line

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

      



to

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

      

Because when you only speak __dirname + 'views'

, it looks in {appName}/views/fileToRender

. But as you speak __dirname + 'testapp/views'

, he will seek {appName}/testapp/views/fileToRender

.

+8


source







All Articles