这是我的index.js
文件...
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'QChat' });
});
router.post('/login', function(req, res) {
console.log("processing");
res.send('respond with a resource');
});
module.exports = router;
这是我用来将POST数据存储到我的mongoDB数据库中的代码。它位于我的app.js
文件中...
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/user');
var db = mongoose.connection;
var Schema = mongoose.Schema;
db.on('error', console.error);
db.once('open', function() {
console.log("connected");
var Schema = new mongoose.Schema({
mail : String
});
var User = mongoose.model('emp', Schema);
app.post('/login', function(request, response){
console.log("here");
new User({
mail: request.body.email
}).save(function(err, doc) {
if (err)
res.json(err);
else
console.log('save user successfully...');
});
});
代码在到达app.post
之前一直工作正常,之后它似乎没有读取剩下的代码。
我知道我的index.js
文件有效,因为当我提交表单时,我会进入显示respond with a resource
的页面(因为发送功能)。但由于某种原因,app.post
没有被阅读,我错过了什么?
这是我的jade html,表明我正在正确实现所有内容......
form(class="inputs", action="/login", method="post")
input(type="text", name="email",class="form-control", id="emailLogin", placeholder="Queen's Email")
input(type="submit",name = "homePage" class ="loginButton" value="Log In" id="loginButton")
答案 0 :(得分:3)
请尝试将以下代码移出db.once('open')
db.on('error', console.error);
db.once('open', function() {});
app.post('/login', function(request, response){
console.log("here");
new User({
mail: request.body.email
}).save(function(err, doc) {
if (err)
res.json(err);
else
console.log('save user successfully...');
});
});
您的代码中的另一个问题是,请确保mongoose.model
的第一个参数为User
,否则可能会弹出一个错误。
var UserSchema = new mongoose.Schema({
mail : String
});
var User = mongoose.model('User', UserSchema);