【发布时间】:2015-11-07 20:18:00
【问题描述】:
我是一名初级程序员。我想知道如何使用按钮提交由 JQuery 日期选择器和单选按钮组成的表单。我想将表单提交到名为 test 的 Mongo 数据库。在我的home.html 文件中,我调用了我需要的不同样式表和javascript 文件。然后我在home.html 中设置了一个输入字段,并在表单下方设置了一个按钮来提交:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Home</title>
<!-- Local CSS and JS -->
<script src="/javascripts/home.js"></script>
<!-- Materialize: Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.0/css/materialize.min.css">
<!-- Materialize: Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.0/js/materialize.min.js"></script>
</head>
<body>
<!-- Input field I want to submit -->
<form method="post" action="/submit">
<input id="test1" type="radio"><label for="test1">Test</label>
<input id="test2" type="radio"><label for="test2">Test 2</label>
<input id="test3" type="radio"><label for="test3">Test 3</label>
</form>
<!-- Button I want to use to submit -->
<button type="submit" class="btn waves-effect waves-light" name="action">Sumbit</button>
</div>
</body>
</html>
现在,我正在通过输入 localhost:3000/home.html 来加载此文件。我想使用我的index.js 文件来编写用于将数据提交到名为test 的数据库的post 方法。在做了一些研究之后,我发现我需要一些东西来启动我的index.js,比如:
var express = require('express');
var router = express.Router();
//TALKING TO THE DB?
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert')
var ObjectId = require('mongodb').ObjectID;
var url = 'mongodb://localhost:27017/test';
var bodyParser = require('body-parser');
/*something would follow like?:
router.get('/submit', function(req, res) {
var db = req.test;
});*/
作为参考,我使用的是 express 骨架,所以我的 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');
// Database
var mongo = require('mongodb');
var monk = require('monk');
//DB TEST
var db = monk('localhost:27017/test');
var routes = require('./routes/index');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
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')));
// 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 handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
但是,我很困惑如何设置从我的输入字段中获取数据的路由(使用提交按钮)。然后我想使用 post 方法将该信息写入我的test 数据库。任何帮助将不胜感激!谢谢!
【问题讨论】:
标签: javascript forms mongodb post express