0

我是node.js初学者。我正在尝试制作一个页面供用户将数据输入到MongoDB. 我按照在线教程进行操作,但弹出以下错误。已经仔细检查了我的代码是否完全相同。

我必须安装其他东西吗?

错误:未找到

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)

这是我的index.js

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;

这是第44app.js

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});
4

1 回答 1

1

http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/ 搜索到“继续提交。享受 404 错误。我们即将解决这个问题。”

您刚刚看到教程作者说您会看到的 404 错误。按照教程进行操作,您可能会在路由器中添加必要的 POST 代码。

就像我上面说的,您想访问 /newuser 页面以输入新用户。

于 2015-06-21T16:52:11.910 回答