我有一个嵌入文档如下:
var artist = new Schema({
name: {
type: String,
trim:true,
required:'Please fill artist name'
},
role : {
type: String,
trim: true,
default: ''
},
isPrimary : {
type: Boolean,
trim: false,
}
});
其他文件如下:
var AlbumSchema = new Schema({
language: {
type: String,
default: '',
trim: true
},
artists: [artist],
title: {
type: String,
default: '',
required: 'Please fill Album title',
trim: true
});
当我发送请求和 princt req.body 值时,我得到如下:
{
title: 'Demo Add',
artists:
'[{"name":"Ilesh","role":"Performer","isPrimary":true,"$$hashKey":"ob
ject:227"}]',
language:'EN'
}
但是一旦我将其转换为 object as
var album = new Album(req.body);
然后打印相册,结果如下:
{
title: 'Demo Add',
artists: [],
language: 'English'
}
我不知道为什么 artists value 在 case 期间变为 null。
编辑:
exports.SaveAlbum = function(req,res){
var album = new Album(req.body);
var data = _.pick(req.body, 'type')
, uploadPath = path.normalize('/album_uploads')
, file = req.files.file;
var user = req.user;
album.cover_art_path = file.path;
if (user) {
var upsertData = album.toObject();
delete upsertData._id;
Album.update({_id: album.id}, upsertData, {upsert: true},function(err)
{
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
}
else {
res.json(album);
}
});
} else {
res.status(400).send({
message: 'User is not signed in'
});
}
};
最佳答案
数组中的 '' 存在问题,如下所述。当按照说明发送 req.body 时,这是起源的问题。
您的要求正文是:
{
title: 'Demo Add',
artists: '[{"name":"Ilesh","role":"Performer","isPrimary":true,"$$hashKey":"ob
ject:227"}]',
language:'EN'
}
它必须是:
{
title: 'Demo Add',
artists: [{"name":"Ilesh","role":"Performer","isPrimary":true,"$$hashKey":"ob
ject:227"}],
language:'EN'
}
这个引号使艺术家成为一个字符串,而不是一个数组,然后在保存时失败。
那么,解决方案是:
var album = new Album(req.body);
album.artists = JSON.parse(req.body.artists);
希望有所帮助。
谢谢
关于javascript - 嵌入式文档在 node.js 中变为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30285781/
matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
Ruby有一些不错的文档生成器,例如Yard、rDoc,甚至Glyph。问题是Sphinx可以做网站、PDF、epub、LaTex等。它在重组文本中完成所有这些事情。在Ruby世界中有替代方案吗?也许是程序的组合?如果我也能使用Markdown就更好了。 最佳答案 自1.0版以来,Sphinx有了“域”的概念,它是从Python和/或C以外的语言标记代码实体(如方法调用、对象、函数等)的方法。有一个rubydomain,所以你可以只使用Sphinx本身。您唯一会缺少的(我认为)是Sphinx使用autodoc从源代码自动创建文档
我开始了一个新的Rails3.2.5项目,Assets管道不再工作了。CSS和Javascript文件不再编译。这是尝试生成Assets时日志的输出:StartedGET"/assets/application.css?body=1"for127.0.0.1at2012-06-1623:59:11-0700Servedasset/application.css-200OK(0ms)[2012-06-1623:59:11]ERRORNoMethodError:undefinedmethod`each'fornil:NilClass/Users/greg/.rbenv/versions/1
rails新手。只是想了解\assests目录中的这两个文件。例如,application.js文件有如下行://=requirejquery//=requirejquery_ujs//=require_tree.我理解require_tree。只是将所有JS文件添加到当前目录中。根据上下文,我可以看出requirejquery添加了jQuery库。但是它从哪里得到这些jQuery库呢?我没有在我的Assets文件夹中看到任何jquery.js文件——或者直接在我的整个应用程序中没有看到任何jquery.js文件?同样,我正在按照一些说明安装TwitterBootstrap(http:
我怀念ipython的一件事是它有一个?为特定功能挖掘文档的运算符。我知道ruby有一个类似的命令行工具,但是我在irb中调用它非常不方便。ruby/irb有类似的东西吗? 最佳答案 Pry是IPython的Ruby版本,它支持?命令来查找有关方法的文档,但语法略有不同:pry(main)>?File.dirnameFrom:file.cinRubyCore(CMethod):Numberoflines:6visibility:publicsignature:dirname()Returnsallcomponentsofthef
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan
我正在尝试使用nokogirigem提取页面上的所有url及其链接文本,并将链接文本和url存储在散列中。FooBar我想回去{"Foo"=>"#foo","Bar"=>"#bar"} 最佳答案 这是一个单行:Hash[doc.xpath('//a[@href]').map{|link|[link.text.strip,link["href"]]}]#=>{"Foo"=>"#foo","Bar"=>"#bar"}拆分一点可以说更具可读性:h={}doc.xpath('//a[@href]').eachdo|link|h[link.t
我有一个包含多个组件的存储库,其中大部分是用JavaScript(Node.js)编写的,一个是用Ruby(RubyonRails)编写的。我想要一个.travis.yml文件来触发一个运行每个组件的所有测试的构建。根据thisTravisCIGoogleGroupthread,目前还没有官方支持。我的目录结构是这样的:.├──构建服务器├──核心├──扩展├──网络应用├──流浪文件├──package.json├──.travis.yml└──生成文件我希望能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2)。我已经有了一个make目标,所以maketest在每
这是一些奇怪的例子:#!/usr/bin/rubyrequire'rubygems'require'open-uri'require'nokogiri'print"withoutread:",Nokogiri(open('http://weblog.rubyonrails.org/')).class,"\n"print"withread:",Nokogiri(open('http://weblog.rubyonrails.org/').read).class,"\n"运行此返回:withoutread:Nokogiri::XML::Documentwithread:Nokogiri::