CouchDB 数据库 create/delete
CouchDB Database create/delete
我有一个 NodeJS 应用程序,但在使用 nano create/delete 数据库时遇到问题。我想检查是否有包含用户名的数据库。如果有数据库我想清除它所以我销毁它并创建一个新的。
module.exports.createDB = function () {
try {
nano.db.list().then((body) => {
// body is an array
body.forEach((db) => {
if(db == getUser.username){
nano.db.destroy(getUser.username)
}
});
});
nano.db.create(getUser.username).then((body) => {
nano.use(getUser.username).insert(
{ "views":
{ "webview":
{ "map": "function (doc) {\n emit(doc.msg, 1);\n}", "reduce": "_count" }
}
}, '_design/output', function (error, response) {
console.log("Design Created");
});
})
} catch (error) {
console.log(error);
}
}
如果没有同名的数据库,它工作正常,但如果有同名的数据库,我会得到错误:
(node:33354) UnhandledPromiseRejectionWarning: 错误: 无法创建数据库,文件已经存在。
但是我不知道为什么,因为我之前破坏了这个数据库?
您可以通过调用db.info()
来检查数据库是否存在。如果它存在,您可以销毁它并重新创建它。如果不存在,就创建它:
const Nano = require('nano')
const nano = Nano(process.env.COUCH_URL)
const main = async () => {
const DBNAME = 'mydb'
const db = nano.db.use(DBNAME)
try {
const info = await db.info()
console.log('DB Exists!', info)
await nano.db.destroy(DBNAME)
} catch (e) {
console.log('DB does not exist!')
}
await nano.db.create(DBNAME)
}
main()
我有一个 NodeJS 应用程序,但在使用 nano create/delete 数据库时遇到问题。我想检查是否有包含用户名的数据库。如果有数据库我想清除它所以我销毁它并创建一个新的。
module.exports.createDB = function () {
try {
nano.db.list().then((body) => {
// body is an array
body.forEach((db) => {
if(db == getUser.username){
nano.db.destroy(getUser.username)
}
});
});
nano.db.create(getUser.username).then((body) => {
nano.use(getUser.username).insert(
{ "views":
{ "webview":
{ "map": "function (doc) {\n emit(doc.msg, 1);\n}", "reduce": "_count" }
}
}, '_design/output', function (error, response) {
console.log("Design Created");
});
})
} catch (error) {
console.log(error);
}
}
如果没有同名的数据库,它工作正常,但如果有同名的数据库,我会得到错误:
(node:33354) UnhandledPromiseRejectionWarning: 错误: 无法创建数据库,文件已经存在。
但是我不知道为什么,因为我之前破坏了这个数据库?
您可以通过调用db.info()
来检查数据库是否存在。如果它存在,您可以销毁它并重新创建它。如果不存在,就创建它:
const Nano = require('nano')
const nano = Nano(process.env.COUCH_URL)
const main = async () => {
const DBNAME = 'mydb'
const db = nano.db.use(DBNAME)
try {
const info = await db.info()
console.log('DB Exists!', info)
await nano.db.destroy(DBNAME)
} catch (e) {
console.log('DB does not exist!')
}
await nano.db.create(DBNAME)
}
main()