title: node.js Error: Not Found
body: <p>I'm a <code>node.js</code> beginner. 
  I'm trying to make a page for users to input data into <code>MongoDB</code>.
  I followed a tutorial online, but the error below popped out.
  Have already double checked my codes are completely the same.</p>
  
  <p>Do I have to install something else?</p>
  
  <p>Error: Not Found</p>
  
  <pre><code>at /.../testproject/app.js:44:13
  at Layer.handle [as handle_request] (/.../testproject/node_modules/express/lib/router/layer.js:82:5)
  at trim_prefix (/.../testproject/node_modules/express/lib/router/index.js:302:13)
  at /.../testproject/node_modules/express/lib/router/index.js:270:7
  at Function.proto.process_params (/.../testproject/node_modules/express/lib/router/index.js:321:12)
  at next (/.../testproject/node_modules/express/lib/router/index.js:261:10)
  at /.../testproject/node_modules/express/lib/router/index.js:603:15
  at next (/.../testproject/node_modules/express/lib/router/index.js:246:14)
  at Function.proto.handle (/.../testproject/node_modules/express/lib/router/index.js:166:3)
  at router (/.../testproject/node_modules/express/lib/router/index.js:35:12)
  </code></pre>
  
  <p>and here is my <code>index.js</code></p>
  
  <pre><code>var express = require('express');
  var router = express.Router();
  
  router.get('/', function(req, res, next) {
             res.render('index', { title: 'New Title' });
             });
  
  
  
  router.get('/userlist', function(req, res) {
     var db = req.db;
     var collection = db.get('usercollection');
     collection.find({},{},function(e,docs){
  
      var name = [];
      var objKey = Object.keys(docs);
      objKey.forEach(function(objectid){
        var itemkeys = Object.keys(docs[objectid]);
        itemkeys.forEach(function(itemkey) {
          var itemvalue =docs[objectid][itemkey];
          console.log(objectid+': '+itemkey+' = '+itemvalue);
          if (itemkey == "username") {
            name.push(itemvalue);
          }
        })
      })
         console.log(name);
         res.render('userlist', {
            "userlist" : name
         });
      });
  });
  
  
  /* POST to Add User Service */
  router.post('/adduser', function(req, res) {
  
      // Set our internal DB variable
      var db = req.db;
  
      // Get our form values. These rely on the "name" attributes
      var userName = req.body.username;
      var Email = req.body.email;
  
      // Set our collection
      var collection = db.get('usercollection');
  
      // Submit to the DB
      collection.insert({
          "username" : userName,
          "email" : Email
      }, function (err, doc) {
          if (err) {
              // If it failed, return error
              res.send("There was a problem adding the information to the database.");
          }
          else {
              // If it worked, set the header so the address bar doesn't still say /adduser
              res.location("userlist");
              // And forward to success page
              res.redirect("userlist");
          }
      });
  });
  
  /* GET home page. */
  router.get('/newuser', function(req, res) {
             res.render('newuser', { title: 'Add New User' });
             });
  
  module.exports = router;
  </code></pre>
  
  <p>and here is from <strong><em>line 44</em></strong> from <code>app.js</code></p>
  
  <pre><code>// catch 404 and forward to error handler
  app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
  });
  </code></pre>