Javascript 如何将变量放入数据库设计文档中
我正在PockDB中创建一个设计文档,如下所示Javascript 如何将变量放入数据库设计文档中,javascript,angularjs,pouchdb,Javascript,Angularjs,Pouchdb,我正在PockDB中创建一个设计文档,如下所示 var desingDoc = { _id: '_design/' + param, views: { by_name: { map: function (doc) { if (doc._id.indexOf(param + '_') == 0) emit(doc._id); }.toString() } } }; 我犯
var desingDoc = {
_id: '_design/' + param,
views: {
by_name: {
map: function (doc) {
if (doc._id.indexOf(param + '_') == 0)
emit(doc._id);
}.toString()
}
}
};
我犯了错误
pouchdb.min.js:7 ReferenceError: param is not defined
function index(param) {
var desingDoc = {
_id: '_design/' + param,
views: {
by_name: {
map: function (doc) {
if (doc._id.indexOf(param + '_') == 0)
emit(doc._id);
}.toString()
}
}
};
_db.put(desingDoc).then(function () {
console.log('success')
}).catch(function (err) {
console.log(err)
// todo handle the non saved case
});
}
_id的计算结果很好,只是map函数导致了错误我知道这是一个老问题,但我只是遇到了同样的问题,并像这样解决了它:
map: "function (doc) { if (doc._id.indexOf(" + param + "_) == 0) { emit(doc._id); } }"
不要使用.toString(),只需将函数用引号括起来。引用的错误是因为您尚未定义
param
。你能发布完整的代码吗?param是函数param。我认为你试图插入DB的映射应该是一个值,你正在转换成字符串。为此,您必须调用为map编写的函数。