以下代码来自我正在做的教程。我想知道如何捕获和回复帖子请求。我认为这很容易理解,但问题如下。
首先是代码:
节点
app.post('/tasks', function(req, res){
var task = new Task(req.body.task); // This line
task.save(function (err) {
if (!err) {
res.redirect('/tasks/new');
}
else {
throw err;
}
});
});
玉
extends ../layout
block content
h1 New task view
form(role='form', method='post', action='/tasks')
fieldset
legend Add a task
div.form-group
label Task
input(name='task[task]', class='form-control') // This line
button.btn.btn-primary(type='submit') Submit
button.btn.btn-default(type='reset') Clear
猫鼬
mongoose.connect('mongodb://localhost/todo_development');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var Task = new Schema({
task: { type: String, required: true }
});
var Task = mongoose.model('Task', Task);
在上面的前两个代码块中,每个代码块都有一个名为“this line”的注释。在这些行中,单词 task 作为属性/属性。当我将这些更改为“oink”之类的其他内容时,会破坏代码。
例如,如果我这样做:
节点
var task = new Task(req.body.oink); // This line
玉
input(name='oink[oink]', class='form-control') // This line
没有用。 我不确定为什么以及如何正确地发布帖子请求。 :(
答案 0 :(得分:0)
尝试更改此行
var task = new Task(req.body.task);
对此:
var task = new Task(req.body);
我对Jade不是很熟悉,但据Submit Jade form我所知,你应该把你的输入命名为......
input(id='password',type='password',value='',placeholder='',name='password')
另外,你的猫鼬模式是什么样的?这可能会有所帮助。
您已将变量“任务”定义了两次。试试这个......
var taskSchema = new Schema({
task: { type: String, required: true }
});
var Task = mongoose.model('Task', taskSchema);
答案 1 :(得分:0)
放: 输入(name =' task []',class =' form-control')//这一行
并把它: var task = new Task({' task':req.body.task}); //这一行
运气