CouchDB 1.6.1 here에 대한 문서를 보면 JS require (path) 기능을 사용할 수 있다는 언급이 있습니다. 어떻게 할 수 있니? 설명서에 path
은 "설계 문서 루트에서 시작된 CommonJS 모듈 경로"라고 나와 있습니다.map 함수 내에서 require()를 어떻게 사용합니까?
내 디자인 문서는 _design/data
입니다. 나는 /_design/data/test.js
에서 액세스 할 수 있습니다 test.js
불리는이 디자인 문서에 첨부 파일을 업로드, 다음과 같은 코드가 포함되어 있습니다 :
exports.stuff = function() {
this.getMsg = (function() {
return 'hi';
})()
}
을하지만 내지도 기능에 다음 코드 :
function(doc) {
try {
var x = require('test.js');
} catch (e) {
emit ('error', e)
}
}
결과 이 오류는 다음개체로의 경로를 찾고 require
처럼
["error", "invalid_require_path", "Object has no property \"test.js\". {\"views\":{\"lib\":null},\"_module_cache\":{}}"]
같습니다param ...하지만 그것이 왜인지 이해하지 못합니다.
However, in the upcoming CouchDB 1.1.x views will be able to require modules provided they exist below the 'views' property (eg, 'views/lib/module')
을 그리고 다음 코드 예제 제공 :
, this 링크에서 찾고 CouchDB를 이전 버전에서이 기능을 설명하는, 그것은 당신이 할 수 말한다
{
"_id": "_design/example",
"lib": {
// modules here would not be accessible from view functions
},
"views": {
"lib" {
// this module is accessible from view functions
"module": "exports.test = 'asdf';"
},
"commonjs": {
"map": function (doc) {
var val = require('views/lib/module').test;
emit(doc._id, val);
}
}
}
}
을하지만이 작동하지 않았다 나를 위해 CouchDB 1.6.1.
https://wiki.apache.org/couchdb/CommonJS_Modules 내가 작업 예제를 가지고 :이 예제를 사용
{message: "mod.current is null", fileName: "/usr/share/couchdb/server/main.js", lineNumber: 1137, stack: "([object Array],[object Object])@/usr/share/couchdb/server/main.js:1137\n([object Array],[object Object])@/usr/share/couchdb/server/main.js:1143\n([object Array],[object Object],[object Object])@/usr/share/couchdb/server/main.js:1143\n(\"views/lib/module\")@/usr/share/couchdb/server/main.js:1173\n([object Object])@undefined:3\n([object Object])@/usr/share/couchdb/server/main.js:1394\n()@/usr/share/couchdb/server/main.js:1562\[email protected]/usr/share/couchdb/server/main.js:1573\n"
감사합니다. test.js에서 말하는거야? –
아니요, 질문에. 이것은 다음과 같아야합니다 (코멘트에서 더 형식화 할 수는 없습니다) : "commonjs": { "map": "function (doc) {var val = require ('views/lib/module'). ; emit (doc._id, val);} "}' –