我在节点js中有一个程序。我希望能够在dbs中插入一个String,但是我想设置该字符串的预先填充的开始和结束。这个例子将帮助我更好地解释它:
我有一个架构:
var Cat = new mongoose.Schema({
name: String,
url: String
})
当我添加猫文档时,例如
var post = new Cat({name: "Emily", url: "test"})
它会保存为' name = Emily,url = test'
挑战:
我希望它保存为'name= Emily, url = http://test/extension'
因此,我想预先填充在url
添加'http://'
并在结尾添加'/extension'
的任何var Cat = new mongoose.Schema({
name: String,
url: 'http://' + String + '/nodes'
})
。
我尝试修改这样的架构:
TypeError: Undefined type `Http://function String() { [native code] }/extension` at `url`
这给了我一个错误
kanye_quote = """My greatest pain\
in life is that I will never be able to see myself perform live"""
我在项目的不同位置添加了新文档,所以我只是想找到一种方法从一个地方预先填充它,而不是在整个项目中添加新文档时预先填充它。 有没有其他想法?
答案 0 :(得分:0)
这可以解决您的问题:
var Cat = new Schema({
name: String,
url: String
});
if (!Cat.options.toJSON)
Cat.options.toJSON = {};
Cat.options.toJSON.transform = function (doc, ret, options) {
ret.populatedUrl = 'http://' + ret.url + '/extension';
// you can also delete url key if you want
delete ret.url;
};
输出:
{name: 'name', populatedUrl: 'http://{url}/extension'}