【发布时间】:2016-01-04 19:59:23
【问题描述】:
我正在尝试使用 KeystoneJS 构建一个站点,人们可以在其中提交单词并询问其他用户的同义词。所以我建立了一个简单的Word 模型:
var keystone = require('keystone');
var Types = keystone.Field.Types;
var Word = new keystone.List('Word', {
map: { name: 'word' }
});
Word.add({
word: { type: Types.Text, required: true, initial: "New word", index: true }
});
Word.defaultColumns = 'word';
Word.register();
这个想法是用户在主页上的输入框中输入一个单词,然后单击“提交”,然后该单词将作为一个项目添加到 Word 模型中。但我无法弄清楚页面上处理单击“提交”时触发的事件的 Javascript 与实际在数据库中创建新项目的代码之间的相互作用,如下所示:
var keystone = require('keystone'),
Word = keystone.list('Word');
var newWord = new Word.model({
word: newWord // read from the input box on the home page
});
newWord.save(function(err) {
// post has been saved
});
我最初天真地认为我可以将Word 设为locals 对象的一部分,并从页面上的JS 创建新项目,但这不起作用。所以我想我需要从输入框中读取单词,然后对将单词保存到数据库的路由进行 AJAX 调用。这是我对 KeystoneJS 的理解崩溃的地方。我应该把代码放在哪里来接受 AJAX 调用并创建新项目?
【问题讨论】:
标签: javascript node.js keystonejs