node.js - 使用 Mongoose 从表单中提取数据并添加到数据库

标签 node.js mongodb express mongoose

我想使用 Express Node.js 和 Mongoose 在网页上简单地显示用户名和年龄/

View 应该在左侧更新,而表单在右侧。请参阅this图片。

下面是我的users.js(/users路线),后面是表单的html

Bodyparser 已包含在此应用程序的 app.js 中。 单击提交时,会抛出 404 not found。

Refer this error image

var express = require('express');
var router = express.Router();


/* GET users listing. */
router.get('/', function(req, res, next) {
  res.render('userview');
});


router.post('#', function(req, res, next) {
    
    //User is the model created in app.js of this project
    var newUser = userModel({
          name:req.body.name,
          age: req.body.age         
    });
    
    console.log(newUser);
    // save the user
    newUser.save(function(err) {
      if (err) throw err;

      console.log('User created!');
    });

});

module.exports = router;
 <form method="post">
                     Name:
                    <input type="text" name="name"><br><br>
                     Age:
                    <input type="number" name="age"><br><br>
                    <input type="submit" value="Submit">
 </form>

这是我的app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');
var applist = require('./routes/applist');

var mongoose=require('mongoose');
var app = express();



//set database connection
mongoose.connect('mongodb://localhost:27017/users');
mongoose.connection.on('error',function(){
   console.log('MongoDB Connection Error. Please make sure that MongoDB is running');
    process.exit(1);
});
mongoose.connection.once('open',function(callback){
   console.log('Connected to Database');
   
});

var userSchema = new mongoose.Schema({
   name:{type:String,uppercase:true},
   age:Number
},{collection:'userlist'});

//make model
var userModel = mongoose.model('userModel',userSchema);

app.get('/users', function(req, res, next) {
  userModel.find({},function(err,userModel){
      res.render('userview',{userlist:userModel});
  })
});

module.exports = userModel;



// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', index);


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

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

userModel 存在于 app.js

最佳答案

关于 View 更改

name = "fullname" to name="name"

用户浏览

<form method="post">
        Name <input type="text" name="name"><br><br>
        Age<input type="number" name="age"><br><br>
       <input type="submit" value="Submit">
 </form>

关于node.js - 使用 Mongoose 从表单中提取数据并添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42670704/

相关文章:

mongodb - 使用 keras.utils.Sequence 多处理和数据库 - 何时连接?

javascript - 平均应用程序。两台服务器同时使用Express、NodeJS、Angular 2

javascript - 尝试发送 POST 请求时收到 404 错误

javascript - 在用从 mongodb 获得的值填充数组后,将数组作为 JSON 响应发送

javascript - 如何在 express js 中使用 get 方法从 mongo db 中获取数据?

node.js - 使用 AMQP.Node 的 RabbitMQ 和 Node 中未使用死信消息

mongodb - 如何导出/转储 mongodb 数据库?

javascript - Redis Javascript 异步函数

javascript - Mongo聚合管道更新或推送

javascript - 使用 NodeJS/Express 应用程序保护 AJAX 调用