我正在使用Node.js(Forms)的Forms库,它将在后端为我呈现一个表单,如下所示:
var signup_form = forms.create({
username: fields.string({required: true})
, password: fields.password({required: true})
, confirm: fields.password({
required: true
, validators: [validators.matchField('password')]
})
, email: fields.email()
});
var signup_form_as_html = signup_form.toHTML();
Run Code Online (Sandbox Code Playgroud)
最后一行var signup_var signup_form_as_html = signup_form.toHTML();创建了一个HTML块,看起来像这样:
<div class="field required"><label for="id_username">Username</label><input type="text" name="username" id="id_username" /></div><div class="field required"><label for="id_password">Password</label><input type="password" name="password" id="id_password" /></div><div class="field required"><label for="id_confirm">Confirm</label><input type="password" name="confirm" id="id_confirm" /></div><div class="field"><label for="id_email">Email</label><input type="text" name="email" id="id_email" /></div>
Run Code Online (Sandbox Code Playgroud)
基本上只是一长串HTML.然后我尝试使用以下代码使用EJS和Express渲染它:
res.render('signup.ejs', {
session: loginStatus(req)
, form: signup_form_as_html
});
Run Code Online (Sandbox Code Playgroud)
但是在渲染HTML时,我只是上面发布的字符串,而不是实际的HTML(因此是我想要的表单).有没有办法使用EJS将该字符串渲染为实际的HTML?或者我必须使用像Jade这样的东西吗?
我试图通过Node.js与MongoDB接口,并且在count()方法上遇到了一些麻烦.我正在使用node-mongodb-native,它看起来像我正在做的应该工作.我的代码示例:
var get_total_num_docs = function(db_client, query, cb){
db_client.collection(query['collection'], function(e, coll) {
coll.find(query.params, query.options, function (e, cursor) {
cursor.count(function (e, count) {
console.log(count);
return cb(e, count);
});
});
});
};
Run Code Online (Sandbox Code Playgroud)
我确信一切都存在(aka coll和cursor都定义了),但它只有在我的query.params字段为空(即查找整个集合的计数)时才有效.因此,如果我尝试使用任何类型的选择器运行查找,查找工作,但它拒绝指望返回的光标.从我在网上看到的,这看起来是正确的方法,但显然有些不对劲.感谢您的帮助!
我正在构建一个应用程序,该应用程序有时需要将fb中的一堆数据与我的数据库同步,所以我(尝试)使用“延迟作业”将其推送到后台。这是我的“延迟工作”类的一部分。
class FbSyncJob < Struct.new(:user_id)
require 'RsvpHelper'
def perform
user = User.find(user_id)
FbSyncJob.sync_user(user)
end
def FbSyncJob.sync_user(user)
friends = HTTParty.get(
"https://graph.facebook.com/me/friends?access_token=#{user.fb['token']}"
)
friends_list = friends["data"].map { |friend| friend["id"] }
user.fb["friends"] = friends_list
user.fb["sync"]["friends"] = Time.now
user.save!
FbSyncJob.friend_crawl(user)
end
end
Run Code Online (Sandbox Code Playgroud)
与RsvpHelper班级一起生活lib/RsvpHelper.rb。因此,在我的应用程序中的某个时候,我会Delayed::Job.enqueue(FbSyncJob.new(user.id))与一个已知的有效用户进行呼叫。我建立的工作人员甚至告诉我工作已成功完成:
1 jobs processed at 37.1777 j/s, 0 failed
但是,当我在数据库中检查用户时,他的朋友列表尚未更新。我做错了什么还是什么?非常感谢您的帮助,这使我发疯。