我不太确定我哪里出错了,因为我现在已经尝试调试了一段时间。我正在创建一个webapp的开头部分。现在,我正在尝试使用骨干保存表单。我使用的是Node.js,Mongoose,Express和Backbone。
除了当我将模型发送回服务器,请求挂起并最终导致超时时,一切似乎都正常工作。这是我所看到的截图:
我不太确定问题出在哪里,因为我仍然是这种堆栈的新手。
这是我的Backbone视图。没什么特别的。它使用灰尘呈现一个形式。在提交方法中,我将所有表单的数据收集到一个数组中并形成一个新的用户模型,然后我将其保存回服务器。同样,服务器IS保存数据,就像我在数据库中看到的那样。但是,当我查看Firebug时,我发现POST请求只是在那里挂起并且没有结束(它有旋转加载的东西,好像它还在等待来自服务器的响应。
define(['dust/addUser','models/userModel'], function(AddUser, UserModel) {
AddUser = Backbone.View.extend({
initialize: function() {
this.render();
},
tagName: 'div',
id: 'addUserContainer',
events: {
'submit form': 'submit'
},
render: function() {
$thisSelf = this.$el;
dust.render('addUser','', function(error, output) {
$thisSelf.append(output);
});
$('#wrapper').append($thisSelf);
},
/**
* @method submit
* Capture the submit event, create a logical array of data, send to model
*/
submit: function(event) {
event.preventDefault();
var dataArray = $('#addUser').serializeArray(),
data = _(dataArray).reduce(function(data, field) {
data[field.name] = field.value;
return data;
}, {});
var newUserModel = new UserModel(data);
console.log(newUserModel);
newUserModel.save({
success: function(model, response) {
console.log(model);
console.log(response);
},
error: function(model, response) {
console.log(model);
console.log(response);
}
});
},
});
以下是我的server.js文件的相关部分。在这里,我需要猫鼬并创建连接。
var application_root = __dirname,
express = require('express'),
path = require('path'),
mongoose = require('mongoose'),
app = express();
//database
mongoose.connect('mongodb://nodejitsu:840391d8ed69abf8583c9da46cd6a9c5@paulo.mongohq.com:10041/nodejitsudb7458111315');
这是我创建的API路线:
app.post('/api/users', function(req, res) {
var user;
user = new UserModel({
rider: req.body.rider,
driver: req.body.driver,
name: req.body.name,
email: req.body.email,
phone: req.body.phone,
address: req.body.address,
city: req.body.city,
state: req.body.state,
zip: req.body.zip,
startTime: req.body.startTime,
endTime: req.body.endTime,
officeLocation: req.body.officeLocation
});
user.save(function(err) {
if (!err) {
return console.log("user created.");
} else {
return console.log(err);
}
});
});
任何指针都将非常感激。 :)
答案 0 :(得分:0)
我明白了。我没有回复成功的回复。当我之前尝试过这样做的时候,我并没有意识到我已经回来了。
这是我更新的猫鼬代码:
app.post('/api/users', function(req, res) {
var user;
user = new UserModel({
rider: req.body.rider,
driver: req.body.driver,
name: req.body.name,
email: req.body.email,
phone: req.body.phone,
address: req.body.address,
city: req.body.city,
state: req.body.state,
zip: req.body.zip,
startTime: req.body.startTime,
endTime: req.body.endTime,
officeLocation: req.body.officeLocation
});
user.save(function(err) {
if (!err) {
return res.send(200, 'User saved.');
} else {
return res.send(500)
}
});
});